Fix .vcxproj: openvswitch.inf not included properly.

Sometimes caused the project loading to fail.
Fix compilation errors if OVS_USE_ASSERTS is #define-d
Refactor and fix HandleChecksumOffload

The function was too big.
Added a few OVS_CHECK-s.

Fixes:
o) We must set the checksum offloading NBL info to 0 at the end, to state that checksum offloading is disabled;
o) An erroneous OVS_CHECK
Fix for VerifyIpv4Frame
Fix FillTransportPseudoHeader_FromIpv6

icmp6 is also a protocol type that requires checksum computation (the same as tcp and udp)
fix Encaps_EncapsulateOnb

1. a fragmented buffer can be encapsulated (i.e. must allow multiple NET_BUFFER-s to be linked)
2. the packets's buffers must begin with the eth header. Therefore, we must take into account the eth size when checking the mtu limits.
fix for VerifyProtocolHeader

We can check the transport header of ipv4 only if the packet is not n'th fragment. That is because for fragmented ipv4 packets, only the first ipv4 packet contains the transport header.
Fix _OutputPacketToPort_Encaps: originate icmp4 / icmp6 "packet too big" packets

the packets must be sent back to the original (i.e. source) port, not to the external.

Also, there was an erroneous OVS_CHECK
fir for _Reply_SetAttrType_Flow: cmd type can be new or delete
fix memory corruption in ParseReceivedMessage

OVS_MESSAGE has a field, OVS_ARGUMENT_GROUP, that is not part of the message structs sent from userspace. For datapath, flow, port, packet, we need to allocate memory for the message of size sizeof(OVS_MESSAGE), instead of the given length.
Fix pers port options creation in OFPort_New and OFPort_Set

The allocated memory must also be zero-ed. Otherwise, its data may be misinterpreted later, when being processed.
Fix ipv4 options processing

Ipv4_CopyHeaderOptions: if the ipv4 packet had options, but none of them has the  "copied" flag set, we must delete the options buffer and return NULL.
Ipv4_GetOptionLength: the option type mask was computed erroneously: the "copied" flag is big 1, so the mask must be 0111 1111 = 0x7f
fix Ipv4_SetFragmentOffset

the ipv4 packet might already have an offset set, so we must clear it out before setting a different offset. (previously, it or-ed toghether the old offset with the new offset)
Fix ONB_OriginateIcmp6Packet_Type2Code0 and add doc comments

o) ComputeTransportChecksum must take as parameters the transport buffer and the ipv6 header of the packet that is being created, not of the failing packet (i.e. this is a "packet too big" icmp6 packet)

o) the destination buffer (icmp6 packet) allocation was of too few bytes: memory corruption could sometimes happen.
Reimplement ipv4 packet fragmentation

o) better documented (via comments)
o) clearer code

Fixes:
o) the packet must not be advanced by eth size before encapsulation;
o) ipv4 packet fragmentation now works when the original packet contained ipv4 options
o) the further fragmentation of previously fragmented ipv4 packets now works.