Move the worker interface definition into the core interface definition. Add a new generalised worker message handler.
Switch the existing messaging system to use the new dispatcher class
Use the new message dispatcher for the events on the worker queue. Make it possible for behaviors to receive worker events.
Add a couple of extra helper functions for control maps
Use the message dispatcher to dispatch input events to the game
To support the unit tests, allow the standard game to be created without a message dispatcher (but display a warning if this is done)