Menusystem2

This is more like what I had in mind for the menu subsystem. Each menu
state has its own object which contains its message, valid inputs and
pointers to the resulting states and functions