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 both work with this version, though.