Rewrite the IP checksum code. Get rid of all the inline assembly garbage,
get rid of old APIs that are no longer used, and build a new 'core' checksum
function in C capable of handling any alignment. Add an assembly procedure
(in its own file) for handling large blocks of 32-bit aligned data.
This new code is better suited for modern cpus and should at least as good
as the previous code, and it is far more portable.
Note that in_cksum_hdr() still assumes 32 bit alignment. This will be fixed
soon.