Fix Issue #304

This is currently a WIP.  Today I managed to get the major pieces of it in place.  I am not yet passing tests, but the server starts.
This can be dangerous. If a client is initiating (the client object is being created but has not yet been added to the clientmanager) and the websocket connection immediately closes(this can happen if we are loading the webpage and immediately refresh), client.close is called when the state is `CLOSED` but the redis broadcast message listener still persists on the client object...and is not removed because of the `return;` below.