String pool for metadata
Make length part of the string

Because keys will be more repetitive than string values.
Fix a place where it didn't update the file position
Fix the lack of string termination
Switch to relative offsets for keys and values; add null termination.

Should simplify merging files together later on without having to
fix up all the offsets.
Basic decoding of key-value pairs.

Maybe we don't actually need to store the string lengths.
Get rid of the explicit lengths to save a little space.