Checksum handling

- Changed HeaderChecksum to private
- Changed FooterChecksum to private
- Added SetHeaderChecksum method
- Added SetFooterChecksum method
- Added ValidateHeaderChecksum method
- Added ValidateFooterChecksum method

Maybe this makes the progress of setting and validating the checksums a
little bit easier to resolv.

Note: this is still work in progress, see #3 for context.