Add ALPN support

ALPN is basically a replacement for NPN that is going to be used by HTTP/2.0
and is likely to get IETF blessing. It has been added to OpenSSL branch
targetting 1.0.2 release and NPN is planned to be removed some time after that.
Please refer to changes in POD to learn about the differences between the two.

This change adds support for ALPN, largely based on existing NPN support,
though it reflects differences in semantics of the extensions. POD
documentation and a test is included.

It works with snapshots of OpenSSL 1.0.2.