Tungstenite abuses `Err(ConnectionClosed)` to indicate the non-error condition of a websocket closing. This commit changes error processing such that the error is caught and converted into a successful termination of websocket handling.
This is an initial example that showcases using the new connection upgrade API to implement WebSocket support outside of Rocket's core.