Add specs for possible transitions
Make state machine arguments optional

EventDispatcher as null leads to no event dispatched
CallbackFactory as null leads to default factory used
Fix typo in state machine specs
Add simple example
Improve the readme