Add doHandleWebsocket function

This allows establishing a websocket connection directly in an
HTTPServerRequestDelegate, which is useful if one needs to make some
checks on the request (and possibly send an http response with an error
code) before opening the websocket.

Signed-off-by: Luca Niccoli <l.niccoli@awtech.it>
both are inherently unsafe though as `on_handshake` does not guarantee it won't scape the reference