Protocols for file upload
Upload a file to the target-path, and return any script needed to be run on the node to get the file into place.
file-options is a map of options as passed to remote-file, for file ownership, permissions, etc.
action-options can contain a :sudo-user, specify the user to install the file as.
Return the path to which upload-file would upload a file for target-path