polarssl: add ALPN support

PolarSSL added ALPN support in their 1.3.6 release.

See:
https://polarssl.org/tech-updates/releases/polarssl-1.3.6-released
curl_version_info.3: returns a pointer to a static struct

And clarify that age 3 means 7.16.1 or later.
url-parser: only use if_nametoindex if detected by configure

The previous #ifdef detection wasn't good enough.

Bug: http://curl.haxx.se/mail/lib-2014-05/0260.html
Reported-by: Chris Young
select: with winsock, avoid passing unsupported arguments to select()

"Any two of the parameters, readfds, writefds, or exceptfds, can be
given as null. At least one must be non-null, and any non-null
descriptor set must contain at least one handle to a socket."

http://msdn.microsoft.com/en-ca/library/windows/desktop/ms740141(v=vs.85).aspx

When using select(), cURL doesn't adhere to this (WinSock-specific)
rule, and can ask to monitor empty fd_sets, which leads to select()
returning WSAEINVAL (i.e. EINVAL) and connections failing in mysterious
ways as a result (at least when using the curl_multi_socket_action()
interface).

Bug: http://curl.haxx.se/mail/lib-2014-05/0278.html
gnutls: don't use deprecated type names anymore
gnutls: allow building with nghttp2 but without ALPN support

It might not be the most useful combo, but...
build: Use $(TargetDir) and $(TargetName) macros for VC .pdb output files

Like with the curl tool project files use $(TargetDir)$(TargetName).pdb
rather than $(OutDir)$(ProjectName)d.pdb for the Program Database File
output.
build: Use $(TargetDir) and $(TargetName) macros for VC .lib output files

As with commit 11397eb6dd, use $(TargetDir) and $(TargetName) for the
Import Library output rather than $(OutDir)\$(ProjectName)d.lib and
$(OutDir)\$(ProjectName).lib.
RELEASE-NOTES: Synced with 2a615a2b64
tests: Fix portability issue with the tftpd server and timeouts

gcc spit out warning: variable 'x' might be clobbered by 'longjmp' or
'vfork' messages for a few variables.  These automatic variables were
expected to be changed between a setjmp/longjmp and hold their values,
so are now marked volatile.
curl_sasl_sspi: Fixed corrupt hostname in DIGEST-MD5 SPN generation
curl_sasl: Extended native DIGEST-MD5 cnonce to be a 32-byte hex string

Rather than use a short 8-byte hex string, extended the cnonce to be
32-bytes long, like Windows SSPI does.

Used a combination of random data as well as the current date and
time for the generation.
tests: Fixed up DIGEST-MD5 tests following commit eefeb73af4
curl_sasl: Fixed compilation warning under DEBUGBUILD
KNOWN_BUGS: #30 was fixed in 0bc4938eeccce, 7.37.0
RELEASE-NOTES: synced with d603ed67535
curl_sasl: Fixed copy/paste error of now.tv_sec in commit eefeb73af4
random: use Curl_rand() for proper random data

The SASL/Digest previously used the current time's seconds +
microseconds to add randomness but it is much better to instead get more
data from Curl_rand().

It will also allow us to easier "fake" that for debug builds on demand
in a future.
Curl_ossl_init: call OPENSSL_config for initing engines

Bug: http://curl.haxx.se/mail/lib-2014-06/0003.html
Reported-by: Дмитрий Фалько
KNOWN_BUGS: #83 was addressed with commit c50ce859187ca