decode unfragmented .log files:
- break leveldb_log.go into leveldb_log_blocks.go and leveldb_log.go;
the former is used by both .MANIFEST (descriptor) and .LOG.
- in leveldb_log, introduce readBatch that decodes further
fix UTF8 decoding:
- introduce fieldUTF8ReturnBytes and stringify to handle multi-byte
UTF8-encodings correctly.
In the LevelDB encoding, the internal key can be cut at any byte:
including the user_key, type, or sequence_number. The resulting prefix
is shared among subsequent keys and not specified explicitly by them.
This fixes a previous mistaken belief that cuts can't happen in the
last 8 bytes of the type & sequence number.
Tests are added.