Test and refactor graph + a lot more

+ Started out testing and refactoring the graph class
+ Implemented TransitionConfigurationSet which is in charge of keeping track of the mapping between start_state, end_state, event, and transition configurations. 
  + Allowed for removal of StateMapping
+ Had to refactor StateMachine more than anticipated as was getting into infinite call cycles around method_missing. 
   + Simplified method_missing and removed `__sm` from the private methods
+ Started using EndState::Matchers in the tests instead of reaching into the implementation
+ Removed `blocked` configuration as events aren't guaranteed to pertain to only a single TransitionConfiguration