Converted distribution actions back to taking source file information as multiple parameters instead of as a StashedFile

While sending in a StashedFile is less clutter in the function prototypes and the glue code, that makes it impossible to insert extra actions before the distribution actions which would want to perform local modifications to the stashed file before distribution.
Sftp and Parallel Sftp actions will skip transfer if the file already is present on the target

Before beginning transfer, these actions will ask the target machine to compute the SHA1 hash of the file on the target side. If the SHA1 matches, then both size and content of the file on the target side is as desired - and therefore there is no reason to transfer the file.
This additional logic makes it easy to re-run the transfer operation in case only a few of the targets failed during transmission.