Added menu system

This is the beginning of a menu system. When finished, it will
have a set of buttons and a state machine. Buttons will move
from state to state and at each state you will be able to
execute functions and move to another state or wait for more
button input. The state machine will be composed of a list of
operation classes which do the various functions.

Right now it just handles button events, maintains the state of
each button and can give back the current state of any button.