Merging changes from upsteam, refactor

I've tried to capture what was already in the TCP/UDP sections from
upstream and merge them into the bits I'd put together. The end result
is:

- Reordering of IPv6/IPv4 stuff to be split into major sections by
  IPversion, and then per-version information in each subset
- Alteration to UDP/TCP section to include changes that had been added
  in, incl. examples. Hopefully reworked enough to make it make sense