add test for non-field keys
cover DateTimeField serial_format
rewrite and document the model-field protocol

Public methods are now available for inpecting and modifying the Fields
of any Model class or instance.
Refactor ModelField and tests
enforce type checking when mutating ListField

ListField now returns a TypedList that enforces the field's value
conversions when mutating the list. Now you can't .append() an invalid
value.
make doctests pass with __repr__
test docs in nitpick mode

Probably overkill to use nitpick mode, but better to be strict than lax,
right? Anyway docs are now officially tested.
rename api -> micromodels
update docs