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
removes support for deprecated IPv4-Compatible addresses
(RFC 4291-2.5.5.1) and augments support for the 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.

Simplified the ip4_address() function to simply return either the v4
address 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.