Fix error when 'date' not defined; store native Date objects

Scenario -- you've removed a property from your schema, but still have data with that property. Currently it will throw an error when testing for props defined as "date". This prevents that.

Some small cleanup, comments, and removing an unnecessary bind() use, for performance.

Also: Rethinkdb started supporting native Date objects some time back (http://rethinkdb.com/docs/dates-and-times/)

I've attempted to bridge the gap between folks who may have data stored as timestamps, and creating new data with the native Date objects. To do that, I maintain the date expansion only when the returned object is defined in the schema as a date, but is not a date object.

Hopefully moment can be removed entirely in a larger version bump?