Adding interface for os-collect-config

When run (indirectly via os-refresh-config) under os-collect-config, we
expect to receive a list of json files in the environment variable
OS_CONFIG_FILES. Os-collect-config does not define the intended behavior
of consumers of these files, but does suggest that the order is
preserved if the os-collect-config user changes it.

With the order, we adopt a deep merge strategy where later config files
override earlier ones when there is a direct conflict. The end result is
the ability to pull data from many more sources into os-apply-config
templates.

We only provide an implementation and tests in this commit. A later
commit will integrate it into the program and remove the old code.

Change-Id: Id6794a1df1b0cbdfe11f2cf1c2980ab84388b6b8