Add WebSocket Events

Building on TCP Event publishing in S.I. 3.0, add events
for 'HANDSHAKE_COMPLETE' and 'WEBSOCKET_CLOSED'.

Update DemoService to consume these events.

Change ws.html demo so that the service is started immediately
and the 'command' box is now prefilled with 'stop'.

When closing the websocket, the DemoService immediately
removes the connection from its map, rather than waiting for
an exception on the write.