Added missing comments and docstrings to src

Mostly docstrings; some inline comments.
Covers src.execute, src.reader, src.util, src.settings, src.run, and
src.block
Minor code edits: added __call__ attribute to Action because it serves
as a useful explanation of execute(), removed some abstract method defs
that were already being inherited.
Added docstring for salve.py
Merge branch 'documentation/comment-overhaul' into dev
Replace dir chown/chmod SAs with modify actions.

ShellActions were unnecessarily heavyweight, and have a system-specific
semantics. In case the user does something strange (replaces chown or
chmod, etc) it is much safer to use builtin python functions.
Added execute.create actions to mkdirs and files

Instead of using touch and mkdir -p, we can use the os module and an
empty file write operation. This eliminates the last need for SAs in
the current implementation of SALVE (but we do not remove them because
they may be needed later).
Made the changes to use these in dir and file blocks.
Fixed file and dir create test failures.

Mostly involves conversion of tests to support the new types of
created actions. Also had to reduce min_attrs for directory blocks.
Merge branch 'refactor/no-shell-actions' into dev
Swapped calls to execute() for __call__()

Also added __iter__ to AL definition, which does the obvious iteration
over sub-actions.
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
Added basic way to skip file actions based on permissions.

At Action execution time, checks to see if the nearest ancestor
of a target file is writable & c. If the condition is unment, then
the action is a no-op. This is not uniform with the current strategy
for checking chowns, so that should change.
Changed chwons to use new permission checking.

File and Dir chowns are now always generated when sufficiently
specified. They don't always do anything -- instead, isroot checks
and existence checks take place during execution and may cancel or
modify the running action.
Fixed tests using new permissions checks.

Tests were failing because they did not mock stat, or because
they were expecting chown actions to be omitted when is_root is False.
Repairs tests and does some mocking with statement compactification.
Removed stale file block tests, and added modify action tests for
permissions checks.
Merge branch 'feature/skip-bad-permissions' into dev
Separated ShellActions from src.execute.action

Isolates the activities of SAs from base action definition and testing.
Not strictly necessary, since SAs aren't used at all in SALVE at this
stage, but good cleanup in preparation for dynamic action def in
src.execute.action