Reference platform header for in6_addr struct

Prior to this commit, click defined it's own struct for an IPv6
address. This change modifies to be consistent with the IPv3
implementation in that it pulls the standard 'struct in6_addr'
definition from the platform include files.  This also give access to
some standard IPv6 related macros/constants. Updated files in this
commit were just to reflect the name change from 'click_in6_addr' to
'in6_addr'. References to s_addr16 and s_addr32 were removed as these
are not universally defined on all platforms.

This passes all click tests.
Update support for embedded IPv4 Addresses

This change updates core IPv6 addressing related components to the
latest IPv6 Addressing Architecuture (RFC 4291). Specifically, it
splits support for IPv4-Compatible addresses, deprecated in RFC
4291-2.5.5.1, and augments support for IPv4-Mapped addresses.
IPv4-Mapped address are never transmitted over the wire. Instead, they
are used internally to represent v4 addresses in a single data
structure. The IPv4-Mapped form is the default for any IPv4 Address
assigned to the IP6Address class. The basic_parse routine was modified
to also accept IPv4 AddressInfo mnemonics of the form "0::ffff:<tag>".

Simplified the ip4_address() function to simply return either the v4
address, if it's v4-mapped, or the zero address.  The result can be
used directly in a bool test without the need for another variable.
Augment IP6FlowID to support IPv4-mapped flows

This change permits creating IPv4-mapped IP6Flows from IPv4 flows
and/or their individual parameters.  IPv4-mapped addresses are not
intended for transmission over the wire. Rather, the use of the
IPv4-mapped flow is as a programming conviencience to avoid explicitly
creating/managing different IPFlow types.
Merge pull request #120 from pbuonado/pb_ip6flowid2

Update to IPv6 Support