Allow use of Octopus with models with custom connection

Only for whitelisted shards, optionally specified by setting a class
attribute via 'allow_shard' on a model which also calls
octopus_establish_connection.

The use case is a model I have that lives in a separate database,
which I do not normally want to have to think about when using it,
but I would like to be able to call "using(:separate_db_replica)"
with an Octopus-managed shard to access a read slave for the model.