extracted Raft interface from context
hide state implementation details from state context

* refactor StateFactory to make State from StateType
* cleanup and merged tests
Merge pull request #57 from foldlabs/refactor_state_factory

hide state implementation details from state context
Merge branch 'encapsulate_raft_thread' of github.com:foldlabs/barge into foldlabs-encapsulate_raft_thread

Conflicts:
	barge-core/src/test/java/org/robotninjas/barge/state/DefaultContextTest.java