Rework data store configuration parsing
Description
This modifies how we parse configuration for DataStoreInterface
implementations. Specifically, it adds two new YAML tags which are used to instantiate the relevant implementations, !sql-data-store
and !memory-data-store
, and expects one of those to be passed as the data_store
parameter when parsing an Execution service. It also updates all our example configs to use this layout.
This MR lays the groundwork for separating the Execution and Bots services, since they both require access to the same data store, and this makes it cleaner to avoid duplicating config (and code) when defining them both in one file.
It depends on !246 (merged) since this behaviour is less useful when we are stuck with using a singleton.
This MR solves the first task in #212 (closed), and along with !246 (merged) the whole issue.