Finish initial authentication implementation (#33)

* introduces significant changes to work done on #48
* reworked client connection process:
  * Client connects to server with `NewWebsocketClient`, then
  * Client joins realm with `JoinRealm` or `JoinRealmAuth`
* added an example for authentication