Refactor serialization callback in base header class; pass in packet object plus the current header index
Refactor serialization callback from Packet base class; refactor aggressively private variables from __ to less aggressive _ (mainly to ease implementation of ICMPv6); refactor ICMP class to ease subclassing for ICMPv6