a callable which, passed a Mapper, a mapped instance, and possibly a
SQL clause, 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.