Restore 'deployments' key to cfn Metadata

In recent changes support was added to explode the deployment key into
multiple json files for merging by os-apply-config. But this breaks
other users who want direct access to the full deployments structure.

There seems to be no real reason to delete the key other than tidiness,
so we will stop deleting it from the main cfn structure.

Change-Id: Icf9479376e32c3ad8f9be29359e6100c1aeda2a5
Closes-Bug: #1299110
Updated from global requirements

Change-Id: Ie1a20c6a46a0b79eaaa965322de75f82d698ec20
Cover deployments explosion case better in tests

When cfn explodes deployments we end up with many things stored per
collector, so some assumptions around 1:1 collector to cached content
cannot be made anymore.

Change-Id: I43c5fb759bc99690e0def1c6ecb672ab7f087df8
Test that collect_all works when nothing changed

This improves the test coverage for this very common case and sets up
for a new test which will expose that we fail in this case for exploded
deployments collected by the cfn collector.

Change-Id: I74807107824f8795619207389c064e83580c1c87
Related-Bug: #1307153
Commit changes to exploded deployments to cache

Before this, the exploded deployments that the cfn collector produced
would not ever be committed, and thus would always appear to have been
changed. This resulted in os-collect-config running the command
endlessly.

This requires some refactoring so that we commit changes to the cache
based on what was actually written, rather than just the static list of
collectors.

Closes-Bug: #1307153

Change-Id: I618ef5d752ed6519e8b7bfc090de03f2f24e73ce
Merge "Restore 'deployments' key to cfn Metadata"
Merge "Updated from global requirements"