unify packing code further, pack multiple types with a single packer
Add MultiPacker
algorithm which is capable of packing all (non-MC) data objects into the DstData raw bank. Unify all relevant packers so that they can be used in a uniform manner by MultiPacker
.
Also, generalize pack
to not (only) accept a container to be packed, but a more generic 'range' of items to be packed (i.e. the only requirement on the argument is that one can iterate over it, and get the individual elements to be packed). This is in preparation for the 'clone-less' packing which will persist subsets of containers.
Note: also removes the capability of explicitly setting the 'packed version' of the packed objects, as this (from first principles) is not an independent configurable degree of freedom, but fully set by the packing (source) code.
Goes together with Moore!1808 (merged).