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
This feels a bit hackish but I'm headed out now so I figured I would commit and get feedback and possibly alternative approaches.  The problem is that we can only have npn-boot or alpn-boot on the bootclasspath at 1 time.  I choose to give ALPN precedence when ever there was a possibility that both could be used.  Because of this I had to add this hack to ensure the classpath is setup correctly to run SPDY tests.  As I said any alternatives would be welcome.