Snapshot improvements [#3334]
- Closes #3334 (closed).
- Fixes a bug where snapshot collection would skip mark points of merkle trees.
- Adds filtering to snapshot collection.
- Refactors message hash and record offset tracking to reduce memory consumption.
Changelog: feature
Edited by Ethan Reesor