SSH Transport Implemented

Provides the file actions:

- remote_rsync_transfer
- remote_scp_transfer

This currently **requires** you to use a `file_action_config` on the Galaxy side, as extra configuration is required.

Galaxy job_conf.xml:

    <destination ...>
        <param id="file_action_config">file_actions.yaml</param>

Galaxy file_actions.yaml:

    paths:
        - path: /home/vagrant/
          action: remote_rsync_transfer # or remote_scp_transfer
          ssh_user: vagrant
          ssh_host: my.fqdn
          ssh_port: 2222
          ssh_key: |
            -----BEGIN RSA PRIVATE KEY-----
            MIIEowIBAAKCAQEAwWYGEOhiJgbWv8eBV2LJp0MCSgrAPeX9FbsGn1I+UC110PPW

This passes configuration information in every message to Pulsar. The ssh_key is treated separately, pending a framework for passing transport-metadata. This lets the Galaxy admin reconfigure the SSH
parameters (user/host/port/key) without any interaction on the Pulsar admin's part. This will be very beneficial if the two groups do not have a close working relationship.

## Future Work

- Per TODO in pulsar/managers/stateful.py it should be trivial to define a section of parameters that are automatically extracted from the XML/file_actions (e.g. under a key `meta`), which are handled much more generically than the current hardcoding of `ssh_key` everywhere.