Removed exception handling in GameStateMachine

I remarked to Dennis that easily half the code I was writing
in Multics was error recovery code.
He said, "We left all that stuff out.
If there's an error, we have this routine called panic,
and when it is called, the machine crashes,
and you holler down the hall, 'Hey, reboot it.'"

- Tom van Vleck, in a discussion with Dennis Ritchie

If we crash, restart the program.
No need to have complicated restart logic
Removed MessageQueuePair

A pair wouldn't have clear semantics -
an input in one direction is an output in the other.
Started message junction

This is the function that will pass messages between our
different pieces.