Add context locator to FSM for states and actions

Based on https://github.com/arcturial/fsm/pull/3

The main idea is that there is separation of 2 things:
* workflow is responsibility of FSM
* context preparation is responsibility of concrete ContextLocator 

This way there is no context data preparation/retrieval logic inside state and action code.
It gives strict layers separation for application pattern