This is a roll-forward of cl/540620826. The differences are:
- Added Tony's test that showed breakage on ARM64
- Fixed the 64-bit non-AMD64 checksum implementation
- Handles odd buffers correctly
- Doesn't call the unrolled checksum impl anymore
- Re-ordered calculateChecksum to reduce indentation
Otherwise this is the same CL. The only changes are in checksum_test.go and
checksum_noasm_unsafe.go.
PiperOrigin-RevId: 547890206