API Change
- A new class: `AbstractTimeGame`
- it is a subclass of `AbstractGame`
- has a `onTimer` abstractmethod that is called every x seconds, where x is configurable in the `Server.run` call
- New Response class: `TimerResponse`
- It does not derive from `Response` because it lacks a sender as
it is time-triggered, not player triggered. `TimerResponse` allows the
`onTimer` method to send updates to players.
- New config options
- `ip` & `port` can now be specified in the config rather than with their own arguments
- `ip`: `str`
- `port`: `int`
- `printAllOutgoing`: `bool` makes the server print out all outgoing data for debugging purposes
- `Server.run` has two new optional arguments
- `timeout` is a float representing the seconds between calling games' `onTimer` method. If it is left at `None`, the timer does not run at all.
- `callOnTimer` is a function that takes no arguments and returns `None` and is called together with the `onTimer` method of games.
Internal
- `_ServerFactory` has a new method `handleTimerResponse` that processes the `TimerResponse` objects
- `_ServerFactory` has a new argument `printAllOutgoing` that is used to pass the config from the `Server` class.