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"
```