Support separate field names used for storage.

Add support for storing data using a field name defined by
the `name` property on field definitions.

For example, to store `firstName` as `first_name`:

    var User = schema.define('User', {
      firstName: { type: String, name: 'first_name' },
      lastName: { type: String, name: 'last_name' }
    });
Merge alex request