ConfigServiceProvider is the binding point for the cagey-config-core to discover implementations of this
SPI; it is the thing that must be implemented to extend the configuration ecosystem.
ConfigSink represents an arbitrary command handler; it may be used to initialize the core package, take snapshots,
serialize a configuration update stream, or provide a diffing engine.
ConfigSource represents an arbitrary mutable, strongly typed value store; it is designed to allow loose coupling
with cagey-config systems by passing update commands on change.
Simple sink consumes a ConfigSource and places the result into a HashMap; it is meant to be used for testing and
debugging implementations of ConfigSource inside their respective packages.
ValueCommand provides a loose coupling between a ConfigSource and one or more ConfigSinks that allows updates after
initialization without a direct binding.