StateMachines exist.
Basic Creation API exists and a Machine can be created
Can use different types to represent States
Added a Done Method and a States property
[Red] on setting a new state
[Green] State Transition
[Green] Ensure that StateTransitions only add completed transitions.
[Red] To be able to use Enums for types we need to use Icomparable not IEqualtable
[Green] Move existing tests to use IComparable
[Green] Example Case starting to take shape
Example uses without callbacks
Merge pull request #1 from ticviking/StateTransitions

State transitions