Reverse default order of collectors.

The default order results in less-dynamic heat_local and ec2 overriding
the more dynamic cfn source. That is the opposite of what is desired.

Change-Id: I7e1feb2e6869b4f076200668dd204219ecc4224e
Bump minimum version of fixtures.

We need a fixed version of FakePopen to improve the test harness.

Change-Id: I8e0fcb9943038b48f6c1256b6fefe47bf0323cbf
Rework test_main to use FakePopen.

FakePopen will make the migration to check_call easier, and narrowly
replaces the engire rather than replacing the subprocess entry point.

Change-Id: Ic868ce4cdbef79f256ef01a9a030767522b855a3
Switch to StringStream.

In Python 3 stdout is a text stream not a byte stream, so we should be
prepared for that.

Change-Id: I4bc1151e491226f24591e9b3436db8d5d37fca65
Document the last file presence.

Smart hooks may want to perform delta analysis on metadata, and tests
want to be able to tell if the cache is updated it's previous state,
so we should make the presence and name of the old versions of the
files a stable interface.

Change-Id: Ia29c1ef9e10308d6461dae7823c5f497f6b90122
Do not cache new data if command fails

The point of delaying the commit of data to the cache is that we want to
make sure the command succeeds before giving up on the data changes.
This will ensure that we keep trying the command with any given change
to the metadata until it succeeds.

Change-Id: Idf3a09686b4bbf0e16a9bc9f3359ee9937fcc627
Stop using tearDown.

TestCase.tearDown doesn't get called if setUp fails, it should never
be used.

Change-Id: Ib960c3f9610d8d8a0624e0c0709afa819e1858ad
Stop resetting logging on every call to __main__.

__main__ is called directly during tests, but was resetting the
logging environment within it, which prevented tests from capturing
the log events.

Change-Id: If710e11091723144c97c88aab4aa5e6126844d2b