Enforcing null values by default.

Fixes #39
Adding a toJSON method to models.

Re #18
Cleanup.
Fixing the tests.
Adding preSave and postSave hooks. preSave can return a promise which save will await.

Re #13