MemoryDB: reworked the snapshot file format so that it is easier to read back

- All major chunks are aligne to a page size of 4K by default (padded if needed)
- Added a JumpTable at the end that contains a list of (offset, size) of all the levels in the file (for easy access)
- Added a checksum to the header
- Added helper methods on SliceReader and SliceWriter to simplify things