Support generic value transformation in mappings


## Changes

- Adds support for a `transform` key in mappings. It is expected to a block which will take the value and transform it as needed before being persisted.

## Side effects

- Implicit support for recursively finding and creating nested entities by defining them explicitly as transforms in model mappings (Fixes #60, simpler version of #62)

- Support for custom date formatters by specifying the date format and transforming the value in the block (Fixes #64, #46)