ALPN Support for netty

Motivation:

Netty only supports java NPN implementation provided by npn-api and npn-boot.
There is no java implementation for ALPN.
ALPN is needed to be compliant with the HTTP/2 spec.

Modifications:

-SslContext and JdkSslContext to support ALPN
-JettyNpn* class restructure for NPN and ALPN common aspects
-Pull in alpn-api and alpn-boot optional dependencies for ALPN java implementation

Result:
-Netty provides a java implementation of APLN
Although support for this cipher is required in the http/2 spec (http://tools.ietf.org/html/draft-ietf-httpbis-http2-14#section-9.2.2) it is only available in java8.  I think long term we should enforce this but am wondering if we should add some fallback ciphers supported by java7 (without unlimited security pack).  @nmittler I created issue https://github.com/netty/netty/issues/2844 but do you have any thoughts?