ipv4: clarify each platform's behavior on marshaling, parsing ipv4 header

For now we see three types of behaviors: conventional BSD, FreeBSD and
other that including Linux, OpenBSD, Solaris and Windows.

Change-Id: Iff7efe50b40bd3537b6ed8f02245552d8216c4f3