Data structures for reading, storing and writing unknown fields.

There are copious explanatory comments in the code. 

A future change will actually hook this into the codegen'd record code.