Polishing of protocol handling abstraction

Rename ProtocolHandler to SubProtocolHandler to better reflect the
standard WebSocket terminology.

Provide a basic non-messaging WebSocketHandler that understands
sub-protocols and then provide a messaging-based extension of this.