State Machine Added

Basis of the state machine that we will use has been added using
interfaces for implementation. Will need to tweak the state machine to
actually be useful for Markov, but this is a beginning stage.