Adjusted the manner in which create_model creates specific models.

Instead of creating a new class inline inside create_model, we now use a single Model base class and use type() to dynamically generate a subclass.

This has the benefit of allowing schema and collection to be accessible on the model class/instance. It also sets up the ability to provide dynamically generated classes with proper names (a coming feature). This is important to allow consumer code to make use of class objects and make use of their names etc.
Dynamically created model subclasses now infer their name from the name of the provided collection (which gets camel cased). create_model also provides the ability to override the name if required.
Added some doc strings.
Merge pull request #14 from tleach/tl-classname

Model class construction changes.