Better interface for `::find`

As a general rule, passing varargs to `::find` maps those arguments onto
unscoped key columns; any single array argument scopes the find operation to
multiple values for that key.

In support of the principle of least astonishment, if there's only one unscoped
key column, varargs are treated as multiple values for that column. This is
undocumented.
Support ActiveModel::Conversions

Implement `#to_key`
RecordSet#find respects Enumerable interface if block given
Improve interface for AssociationCollection

* `find` and `select` behave appropriately as both `Enumerable` methods and
  `RecordSet` methods depending on arguments
* `first` queries the database for one record if collection isn't loaded
* `count`, `length`, and `size` work like their ActiveRecord equivalents
Merge pull request #61 from outoftime/interface

Improvements to Cequel::Record interface