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.
I feel like it should also take a callback and ready should be called in the callback since there is a chance that ready will be triggered before the websocket server actually starts. Also, if the wss fails to initialize, we would probably get ready first and then an error which might not necessarily make sense