Fix inner IP header checksum computation.

Encapsulated control packets have an "outer" and an "inner"
IP header. The checksum computation for the inner one is
currently wrong.

This is not a critical bug, since current LISP implementations
apparently do not check for the inner checksum when
decapsulating, but this behavior should not be relied upon.
Moreover, it gives an ugly orange-on-black color in Wireshark
captures.

This commit also changes the "unsigned short*" type of
ip_checksum argument to the almost equivalent "uint16_t*",
for maximum clarity and portability.