Support separate field names used for storage.

This closes #119 by adding support for storing data using a field name defined by the schema. 

For example, to store `emailAddress` as `email_address`, you use the `name` parameter:

    var User = schema.define('User', {
      name: String,
      emailAddress: { type: String, name: 'email_address' }
    });