Queue Events in the NetworkController and let the GameController handle them as it is able.

Fixes #81.

The NetworkController basically now has two modes. The first (when `alwaysReady()` is called) is very similar to the old behaviour: a message comes in and is immediately sent to the gameController for processing. This is useful for when the gameController knows it has no other work to do (waiting for players to join for instance).

The second new mode is the default (when `waitForRequest()` is called), and will make the networkController queue incoming packets. Then the gameController can call `requestNextMessage()` when it is ready to process the next event.