Convert checksum operations from xor to add/subtract

Reviewer: @kenchiang

Add/subtract has advantages over XOR in that two adds of the same value don't
cancel each other out, and the high bits are better utilized.