Add an option to allow files to be deleted during deploy

Discussion would like to have this functionality as they have had a deploy failure mode
caused by old solr config files that had previously been deployed but no longer are.

The default functionality remains the same (i.e. no-op), adding a JSON array to the
predeployDeleteFiles key in data will delete the specified list of files.
Merge pull request #107 from guardian/sh-add-delete-files-option

Add an option to allow files to be deleted during deploy
Add an option to allow more flexibility whilst copying files.

Discussion would like to have this functionality as they have had a deploy failure mode
caused by old solr config files that had previously been deployed but no longer are, as
a result they want to be able to mirror files in such a way that old or missing files
are deleted.

The default functionality remains the same (i.e. no-op), adding a JSON array to the
copyRoots key in data will list multiple source roots from the package artifact directory
that should be copied to the target webapp root.

Similarly copyMode defaults to additive (the existing mode) but can be set to mirror which
in essence adds '--delete --delete-after' to the rsync command.
Revert "Add an option to allow files to be deleted during deploy"

This reverts commit 65c1b96dd38a8b48187f80054c88e16d6ed08daf.
Merge pull request #108 from guardian/sh-copy-roots-and-mode

Add an option to allow more flexibility whilst copying files.
Merge branch 'master' into sh-temp-use-gc2