Add end game support and (incomplete) support for disconnection/refresh/rejoining the game; fixes #12

* added end game support through game delegation
* game will automatically end when owner leaves
* when player disconnects, the game will stash them; when they reconnect, the game will unstash them

* added optional callback parameter to Event invoked after the internal `handle_response`
* `MessageEvent` is now `NotificationEvent`