FlatBufferBuilder builds a FlatBuffer through manipulating its internal
state. It has an owned Vec<u8> that grows as needed (up to the hardcoded
limit of 2GiB, which is set by the FlatBuffers format).
WIPOffset contains an UOffsetT with a special meaning: it is the location of
data relative to the end of an in-progress FlatBuffer. The
FlatBufferBuilder uses this to track the location of objects in an absolute
way. The impl of Push converts a WIPOffset into a ForwardsUOffset.