fix packet marshalling

- tested with IGMPv3 packets

For both TCP & IP, the options are not a single 32 bit field -- they are an array of 32 bit fields (cells, if you will), which are to be parsed according to their individual RFCs.

having an extra 32 bit field for "options" in the IP and TCP cstructs created an off-by-4 error in the marshalling code.