A table is a map from IDs to Values. When serialized, we
represent a table as a sorted vector. Indeed, the values stored
in the table might reference each other, without cycle, so the
order matters.
Wrapper for a type T that creates a bundle containing both a ID
table and a value T. That value may contains Node values
inside it. Serializing WithTable<T> will serialize IDs only,
skipping values. Deserialization of a WithTable<T> will
automatically use the table and IDs to reconstruct skipped values.