redesign: configuration updates to support full digesting

This has a few small changes wrapped up in it.  First, Dassets now
uses a Config *instance* for storing its configuration (as opposed
to the `Config` singleton directly).  This ensures a clean config
state and allows testing on config instances and not messing with
the singleton state in tests.

Also, this has a few new config values: source_path, output_path,
digests_path.  `digests_path` replaces the deprecated `digests_file_path`.
The other additional configs allow for better source handling and
output generation.