Implement rss_software_hash_proto_v4() - which calcaulates the
appropriate 2-tuple hash for the given IPv4 frame.

Depending upon how things are configured, it may be appropriate
to hash TCPv4/UDPv4 using a 2-tuple hash.

I've verified this on UDPv4 hashing for both fragments and
non-fragments, for both incoming and outgoing frames.

* incoming for fragments does do a hash re-calculation after
  combining things;
* outgoing does do an IPv4 hash in software before passing
  to ip_output().
* .. and it seems that the outbound fragments do end up having
  the flowid/flowtype copied into the fragment bits, but I'm not
  sure how.