Added the skeleton of the menu loop

Seems stable, recovers from invalid input. Now I can work on each
component of the game and hook them in to the menu. Don't forget to send
the player back to the menu where appropriate, it doesn't happen by
default.