Added support for custom web socket protocols.

Added support for custom web socket protocols.

To add custom protocol implementation user should override get_websocket_protocol_subclass() method in WebSocketHandler subclass.