## What changed?
Adding a PartitionedSnapshot function to the ChasmTree interface so
snapshots can be made that separate user data from the cluster-local
metadata. Also adds a way to recombine a the user data with the metadata
to reconstruct the original tree state.
## Why?
This allows for additional flexibility for replication-related work,
where all the cluster-local metadata is not needed.
## How did you test it?
- [x] built
- [ ] run locally and tested manually
- [ ] covered by existing tests
- [x] added new unit test(s)
- [ ] added new functional test(s)
## Potential risks
Low risk, adding to interface.