Checksummer

This creates a `Checksummer` class responsible for creating checksums. Having checksumming logic in a single place is much better from a maintainability point of view.

This PR also changes checksums from hex form (e.g. `3df63b7acb0522da685dad5fe84b81fdd7b25264`) to Base 64 form (e.g. `mL+TaqNsEeiPkWloPgCtAofT1yg=`) to reduce space.