Additional constructor for SugarDb to allow setting database name and version without using the manifest.
SugarDb: Allow subclasses to their own SchemaGenerator.
SchemaGenerator: Cache the list of model classes so we'll only do reflection once.

  * This is also in preparation for allowing consumers to add additional
    classes manually.
SchemaGenerator: Allow adding additional domain classes.

 * This can be useful if classes come from a library that is not in the
   same namespace as the application.
SugarContext: Added default constructor and set properties to protected so subclasses can provide their own property values.