Track ActiveRecord::Relation scopes

As a hard-core Octopus user, it bugs me that the following code doesn't currently work:

  items_relation = Client.using(:canada).last.items
  some_other_result = Client.using(:brazil).count
  items_relation.size # Selects items from brazil shard, not canada

I expect a relation that was produced on a given shared to have its queries executed on that same shard, even if I choose to delay evaluation of the relation until long after the ActiveRecord::Relation object was created.

The fact that this doesn't currently work leads to such things as

  Client.using(:canada).last.items.select(:client_id)

not executing against the canada shard!

This pull request fixes that problem in both Rails 3.2 and 4.x, as well as cleaning up some misorganized Octopus::Model code and fixing one spec that didn't run correctly in the GMT -0500 time zone.