More unit Test for State Machine and added A State Interface
Finished StateMachine
Refactored StateMachine and StateMachineTest:

	Replaced std containers with typedef and shorter name
	Refactor test to less redundent code.
ignore metadata
try out gitignore
Merge pull request #1 from gorillaking/State-Machine

State machine