add peerCertificateChain() to NetSocket, ServerWebSocket, and SockJSSocket

Currently you can only access the peer certificate chain on `HttpServerRequest`.  This change makes it available on the socket related classes as well.

This is required at my company because we need to validate the client certificate `SubjectDN`.

For SockJS, I removed the `setInfo()` approach to sessions and created subclasses that pass through the calls to either the `HttpServerRequest` or the `ServerWebSocket` depending on the type of session.  This avoids the cost of handling the `SSLPeerUnverifiedException` that can be thrown for `.peerCertificateChain()` unless the peer certificate chain is requested explicitly.