Moved backups into backupdir/files/<hash>

Storing backups by hash instead of original filename prevents
duplication in the event that a file moves. This update is part
of the preparation for recovery code.
Changed date format in backup log.

Altered from <year>-<month>-<day>.<epoch> to
<year>-<month>-<day> <hour>:<minute>:<second>
Both are at second-level resolution, but one is more human readable.

Includes addition of commandline backup-recovery argument that raises
an exception that indicates that SALVE does not yet have backup_recovery
support, in case it is invoked with that option before support is added.
Merge branch 'feature/backup-name-by-hash' into dev
Broke backup actions into a subcommand.

Includes edits to command and enum in order to support the subcommand
structure. Removes backup_recovery check from SALVE runs.
Added subcommand tests.

These are tests on src.run.command to ensure that it correctly identifies
and dispatches on subcommands. At present, only backup exists and is tested.
Merge branch 'feature/backup-subcommand' into dev
Switched from optparse to argparse.

Now use subcommands including the core 'deploy' subcommand. Refactored
testing code to accomodate argparse. Cleanup to parser tests and help
output.
Removed gitrepo deploy flag.

The gitrepo flag can only be used in an environment in which Git is installed.
This makes git a dependency of SALVE, which it should not be. Instead, after
SALVE has a plugin framework, there is a possibility of a git plugin that allows
the specification of Git blocks.
Merge branch 'feature/use-argparse' into dev
Converted common options to globals.

Instead of being overridden by block settings, the globals are applied
over all of the block-specific values. Alterations to tests support the
change.
Merge branch 'refactor/global-config-values' into dev
Added action verification and verification codes.

Each Action has a set of verification codes which define the various failure
conditions of the Action, reasons that the Action was skipped, or the 'OK' status.
Verification codes are obtained from Action verification via Action.verify_can_exec()
verify_can_exec is called at the beginning of execution to obtain a verification code.
Depending on the verification code, warnings or errors may be written to stderr, and
the action may be skipped.
Checks are in place for copy actions. Cleanup for various elements of output production
in order to make warnings clear and concise.
Cleanup for CopyAction verify and added Create verification.

Verification will no longer produce an empty file when doing the writability check
for FileCopyActions, more testing takes place inside of a scratch dir for correctness,
DirCopy verification is now inspecting the source dir as well.
Includes modification of output to include the type of the warning based on the Action
class.
Added verification checks to Modify.

Verification for these is somewhat more complicated. Includes a conversion
in these modules to create synthetic actions and invoke them rather than
attempting to perform chowns and chmods directly on directory contents.
Add verification for Backups and many tests now capture stderr.

Failed verification often results in writes to stderr. IO Mocking on scratch
containers and explicit mocking in many tests is sufficient.
Backup verification is generally a variant of Copy verification.
Merge branch 'feature/action/verification-check' into dev
Version bump to 2.0.0 and changelog additions.
Updates to SALVE Roadmap for 2.0 release
Merge branch 'documentation/readme/2.0-changelog' into dev