Separated unit and end-to-end tests, added first E2E tests.

The addition of end to end testing as a package requires renaming for
pretty much all of the testing code into a "unit" directory tree.
Simple E2E tests based on the pre-existing parser tests, and invalid
manifests.
Updated E2E file names to be descriptive, and cleaner.

Insead of (in)valid[N].manifest, the manifest names are now
descriptor.manifest, which makes the files themselves more
self-documenting.
Moved reader tests out of a directory.
Began full E2E testing of the commandline program.

Includes some minor cleanup to the commandline error reporting to be
conformant to the typical UNIX style of error,
[filename], line [lineno]: [message]
Started prettifying asserts with strings of what is unexpected.

Some E2E tests use a scratchdir.
These write files, including a manifest file, and then execute those
manifests. The manifests copy files within the scratchdir.
Improved scratchdir creation and handling.

Scratchdir usage is now handled by a class that wraps all nosetests
that use one. Scratchdirs are created as tmpdirs and torn down as part
of the testing process.
Includes some more extensive E2E file testing.
Refinements to scratch; more E2E run tests.

Scratch function names and usage are now tidier. Wrote up an early
backup test. Copies the manifest over an empty file and confirms
that the file can still be found inside of the backups dir.
Added environment mocking to ScratchContainers.

Creates a mock of os.environ which is dict patched into place,
makes the user's homedir, and patches a few ugo/os lookup funcs.

Includes E2E run test for implicit common attrs that makes use of the
new environment mocking.
Merge branch 'testing/end2end' into dev