support STB_GNU_UNIQUE symbol bindings in dynamic linker

these are needed for some C++ library binaries including most builds
of libstdc++. I'm not entirely clear on the rationale. this patch does
not implement any special semantics for them, but as far as I can
tell, no special treatment is needed in correctly-linked programs;
this binding seems to exist only for catching incorrectly-linked
programs.
make getaddrinfo with AF_UNSPEC and null host return both IPv4 and v6

based on a patch by orc, with indexing and flow control cleaned up a
little bit. this code is all going to be replaced at some point in the
near future.
move strftime_l into strftime.c and add __-prefixed version

the latter is both for ABI purposes, and to facilitate eventually
adding LC_TIME support. it's also nice to eliminate an extra source
file.
add __wcsftime_l symbol

unlike the strftime commit, this one is purely an ABI compatibility
issue. the previous version of the code would have worked just as well
with LC_TIME once LC_TIME support is added.
add _l versions of strtod family functions, purely as aliases

this is a cheat since the _l versions take an extra argument, but
since these functions are only here for ABI purposes, it doesn't
really matter as long as the ABI matches. if the non-__-prefixed
versions are eventually made public, they should proabably be real
functions rather than hacks like this.
prepare strcoll/wcscoll for LC_COLLATE support and add ABI symbols
add SO_SELECT_ERR_QUEUE to socket.h
introduced in linux-v3.10 commit 7d4c04fc170087119727119074e72445f2bb192b
remove TCP_COOKIE_TRANSACTIONS from tcp.h
removed in linux-v3.10 in commit 1a2c6181c4a1922021b4d7df373bba612c3e5f04
add CLOCK_TAI (and CLOCK_SGI_CYCLE) clock ids to time.h
added in linux-v3.10 commit 1ff3c9677bff7e468e0c487d0ffefe4e901d33f4
add if_ether.h constants ETH_P_802_3_MIN and ETH_P_BATMAN
see linux commits 4f99ad51292078cc47343c17d3870764588cff73 and
e5c5d22e8dcf7c2d430336cbf8e180bd38e8daf1
add PTRACE_PEEKSIGINFO to ptrace.h
added in linux-v3.10 commit 84c751bd4aebbaae995fe32279d3dba48327bad4
using stdint.h types for the new ptrace_peeksiginfo_args struct
add ABI compat aliases for a number of locale_t functions
update strxfrm/wcsxfrm for future LC_COLLATE support and ABI compat
rework langinfo code for ABI compat and for use by time code
update siginfo according to linux headers

linux commit a0727e8ce513fe6890416da960181ceb10fbfae6 (2012-04-12)
added siginfo fields for SIGSYS (seccomp uses it)

linux commit ad5fa913991e9e0f122b021e882b0d50051fbdbc (2009-09-16)
added siginfo field and si_code values for SIGBUS (hwpoison signal)
add protocol families PF_IB and PF_VSOCK to socket.h

linux commit 8d36eb01da5d371feffa280e501377b5c450f5a5 (2013-05-29)
added PF_IB for InfiniBand

linux commit d021c344051af91f42c5ba9fdedc176740cbd238 (2013-02-06)
added PF_VSOCK for VMware sockets
fix incorrect type for new si_call_addr in siginfo_t

apparently the original kernel commit's i386 version of siginfo.h
defined this field as unsigned int, but the asm-generic file always
had void *. unsigned int is obviously not a suitable type for an
address, in a non-arch-specific file, and glibc also has void * here,
so I think void * is the right type for it.

also fix redundant type specifiers.
do not include math modules in the default -O3 optimization set

it's not clear that -O3 helps them, and gcc seems to have floating
point optimization bugs that introduce additional failures when -O3 is
used on some of these files.
make inet_ntop format v4-mapped ipv6 addresses properly

based on a patch by orc. POSIX actually fails to specify the format of
the ntop conversion; presumably, any output that will correctly
round-trip back via the (well-specified) pton operation is acceptable.
the new behavior is much more convenient than the old, however.

this patch also affects getnameinfo, which is implemented in terms of
inet_ntop and which is the preferred interface for performing this
conversion.

I've also removed some inexplicable cruft (filling the buffer with 'x'
before doing anything) whose origin I was unable to track down.
fix undefined strcpy call in inet_ntop

source and dest arguments for strcpy cannot overlap, so memmove must
be used here. the length is already known from the above loop.