Close websocket when calling OutputStream.close().
Rename WebSocketOutput to WebSocketSession.
Fix code formatting.
Introducing WebSocketSession.close().
Rename WebSocketOutputFactory to WebSocketSessionFactory.
Introducing WebSocketSession.getRequest().
Remove the request parameter from all WebSocketSessionHandler methods
because the WebSocketSession now gives access to the request.
Log a warning message on attempt to close a websocket that is already closed or does not exist.
Merge branch 'feature/closeable-websocket' into develop