ALPN Support for netty

Motivation:

Netty currently only leveraged npn-api and npn-boot. It does not leverage the alpn-api and alpn-boot packages for
ALPN support.  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

Result:
-Netty supports ALPN and NPN
I didn't add this but I see that it is guarding against a call to `SSLContext.setNextProtos(ctx, nextProtocolBuf.toString());`.  I don't have the java doc for this so I'm not sure if it is OK to call with empty content...I do see other projects also guarding against providing null/empty content here https://github.com/twitter/finagle/blob/master/finagle-native/tomcat-native-1.1.27.finagle.patch#L1340.