initial checkin of state pattern classes.  I stubbed out event handlers
for all the buttons in class and have them invoke apprioriate methods in
the IState interface implmentations.

The logic around state transitions is in the abstract class BaseState,
it uses reflection to see the current type of the state and set the
follow on state.

I think we just need to wire it up to the UI and test.  I newed up a
Clock instance and did .changeMode() on it and it changed the state
appropriately so it seems to work.
pushing commit