only use default at __init__
split to_db (renamed to_primitive)

to allow different behaviour depending on if we're serialising for the
db or for not
Merge remote-tracking branch 'origin/master' into to_primitive
better test
add docstring
Merge pull request #56 from onefinestay/to_primitive

To primitive