User Module initial PR

Warning 42 commits ahead.

<!---
@huboard:{"order":69.75,"milestone_order":2.4375,"custom_state":""}
-->

Shouldn't the information owned by the class be the actual type that can be operated on (so here a `Date`) and the class-query interface (either for updating the DB or for "loading" from it) would take care of the serialization/de-serialization?