add message passing, and use it to allow either game or gui to tell the other when to shut down
add more data separation when creating messages with send
move state (and shared atom) initialization to game; send share to gui with message