Updated dircopy to do file backups.

A dir copy now produces an AL containing FileCopyActions and
FileBackupActions.
Includes a fix that makes a CopyAction correctly examine symlinks.
In order for the newer form of dir copy to work correctly, backups need
to check file existence before doing anything. They should do this
anyway.
Fixes to DirBlock.to_action tests.

To accomodate the new structure of directory actions, many of the tests
had to be rewritten to acommodate action lists. Changes include handling
of mkdir when ugo.is_root returns true, and handling of recursive
copying of files (os.walk instead of 'cp -r').
A call to makedirs no longer takes place when os.path.exists returns
true on a desired directory.
Merge branch 'bugfix/dircopy-nobackup' into dev
Converted ShellActions to only hold one command.

A command list is not necessary, since you can keep an AL of
ShellActions. It also gives better error reporting to separate shell
commands into separate actions.
Merge branch 'refactor/shell-action-singleton' into dev
Readability edits throughout src.block

Renamed "base_block.py" to "base.py" for clarity.
block.base reads a bit better than block.base_block, which gives a false
uniformity with file blocks, dir blocks, and so forth.

Added comments for Block, DirectoryBlock, ManifestBlock, and Identifier.
These include docstrings and inline comments that were needed in order
to provide clarity of purpose and meaning throughout the code. Includes
minor bugfixes in Directory Blocks.
Moved file path expansion into base block.

This requires the addition of some block attributes which track which
block attrs are paths, and which ones must always be specified. Without
these values in hand, it is not possible to apply path expansion
correctly.
Fixed file block handling of backups.

Previously, an os.path.exists check was running at the time of action
production, rather than inside of the backup actions. This tweaks file
block action generation to always product the backup action when
triggered.
Includes some new comments.
Merge branch 'refactor/block-cleanup' into dev
Removed check for dst existence in file copy.

This was carried over from moving the link copy code from backup checks.
dst existence should not be checked. To be lighter on volumes where
writes are slow or expensive, this should do a hash collision check
first to compare the files.
Fixed bug in dircopy with unassigned var.

DirCopies referenced a variable before assignment due to a mistake
refactoring to separate dir creation from file copies. Caused a crash
failure when triggered.
Merge branch 'bugfix/copy-failure' into dev
Updated readme to 1.0.3

Includes updates to changelog.
Changed readme to reference quickstart webpage.

Instead of having the quickstart guide in the readme, the quickstart is
now on the webpage. This is accomodated with a new link instead of the
full quickstart guide.
Also fixes https links to http
Merge branch 'documentation/readme-1.0.3' into dev
Merge tag '1.0.3' of github.com:sirosen/SALVE into config

Stable version 1.0.3

Changes:
Fixes major bug with dir copy not triggering file backups
Internal refactoring and cleanup in Blocks and Actions