Move realloc into read_header.

This allows us to realloc as soon as we know the size of the frame.
Not that it makes a difference when we do this, but at least
we don't have to check every time we go through main receiving
loop whether or not we might overflow our bounds. Main loop
can assume there will be size for next byte as read_header is
going to do this work for *every* frame.