[#3] Collections can be instantiated with data

Collections can now be seeded with item data when they are instantiated
by passing a data object as the first argument to the collection
constructor. If a model name is defined for a collection, then each item
in the given array is used as seed data for newly instantiated models
that are then stored on the collection.

You can define a model name for a collection by passing a name value for
the `model` property of the new optional second argument of
`client.collection()`. If no model name is defined on a collection, then
any given data is added to the collection as-is, so collections can be
used to organize arbitrary types in addition to named models.