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
I'll re-word

I'll take out the premature return and put an assumenotnull after the catch.