Reusable snapshotting abstractions

- SnapshotSerializer for snapshot - stream conversions
- SnapshotAccess for creating streams from snapshot metadata