Support for defining validate as a function which returns an object

This tiny pull request leverages `_.result(this, validate)` to add support for `validate` being a function which returns an object rather than just an object.  This is how backbone core does it as well.  For example, `defaults` can either be an object or a function which returns an object.

Tests and documentation are updated, but if there are any other changes you would like as a part of this, please let me know and I'll be happy to make them!