Made the websockets server a shared instance as for now you can only listen to one port and define one protocol at a time. If you want to change the port or the protocol name, you need to stop the server, make the changes and restart it.
Better error handling and now you can pass blocks that are executed when the server has been started or stopped.
Updated the README