Closes #14
This allows more options to be added nicely in the future, and hides the implementation details from library users.
Expose status (connecting, negotiating, ready) Fire ServerReady and ServerConnected events