Allow passing a shell to use when executing scp.

This adds an option to Net::SCP calls to allow wrapping the call to `scp` itself in a different shell. This might not sound very useful at first, but allows to transfer files as different users.

E.g. in Capistrano
```ruby
put "Some content", "/path/to/some/file", :shell => "sudo su - some-other-user", :via => :scp
```