Remove the global dependencies for the State object.

The State object was dependant on a templated method that created a static DataStore with the type that was passed as the template argument.
This has been replaced by the DataStoreRepository class, that contains a map of DataStore interfaces keyd by the hash_code of the type itself
provided by the typeid operator.
 In order to use this, a method has been added to State to bind a DataStoreRepository for the current context.# Please enter the commit message for your changes. Lines starting