Pass the DataStoreInterface implementation into the scheduler rather than using a singleton
Description
This MR removes the DataStore singleton, and simply passes the instance of whatever implementation of the DataStoreInterface is defined in the configuration into the scheduler. Since the data store is only really needed by the scheduler, using a singleton was just adding needless complexity. See #212 (closed).
Most of this MR is little more than variety of subtly different find/replaces.
This merge request, when merged, will address issue/bug:
Solves the second and third tasks in #212 (closed). The first will be addressed in a separate MR.