Reallocate newSize bytes of memory, replacing the old oldData. This
grows downwards, and is intended specifically for use with Builder.
Params inUseBack and inUseFront indicate how much of oldData is
actually in use at each end, and needs to be copied.