a callable which, passed a Mapper and a mapped instance, returns a
shard ID. this id may be based off of the attributes present within the
object, or on some round-robin scheme. If the scheme is based on a
selection, it should set whatever state on the instance to mark it in
the future as participating in that shard.
id_chooser
a callable, passed a query and a tuple of identity values,
which should return a list of shard ids where the ID might
reside. The databases will be queried in the order of this
listing.
query_chooser
for a given Query, returns the list of shard_ids where the query
should be issued. Results from all shards returned will be
combined together into a single listing.