more macro magic

Support for case classes without parameters and case objects. 
plus some additional boilerplate scraper in the form of AllImplementations that does the same as UnionType but without manually listing implementations(top trait has to be sealed).

note:
"Storing" singletons(object) is maybe not what you think. It just puts out an empty document. And reading returns the exisiting singleton. My reasoning is that there is no way to construct and replace the existing singleton so it's pointless to store anything. And global singletons should not expose any state anyway. This does work nicely when a singleton is just and implementation of a trait. This time the information "which implementation" is stored.
With addition of recursive structures you can have trees or lists with leafs/nil and no boilerplate to persist them.