Before, when calling the per-type serializer, we passed it the
encapsulating primitiveblock, into which it would place a newly allocated
primitive group.
Instead, have it return the new group, and then we store in the primitive
block. This will help with re-using per-type serializers for serializing
into non-primitiveblocks.
To do this, I need to reserve string id #0 as a delimiter and cannot
generate it anymore.
Forward-compatible format change, in that old files cannot contain
new-format dense nodes, thus the delimiter bug is a non-issue.