Refactor

Cleans up the internals and uses streams2 throughout.

Breaks the interface (used only by one internal tool) for auto-inheriting when registering serializers and deserializers.

I'd love to break the interface once more in the future, simplifying some of them. 

makara and bundalo and localizr all work with this version, though.