Add sink for debugging purposes

SinkDebug dumps a string representation of the node tree topology to a
given std::ostream.
Fix ambiguity in container serializer

This breaks existing code. Container contents are now serialized into a
separate container node. This avoids conflicts and removes the ambiguity
which occurs if a container of structs (or anything else which is
serialized to container nodes) is created.