Move default options to load:defaults
Use `run_locally` instead of `Kernel.system`

`run_locally` is a part of SSHKit, and will give similar output as calling
`invoke` on the server.
Set Capistrano dependency to '~> 3.1'

This is the lowest version I've tested with.

Using the 'pessimistic operator'[1] will also ensure we don't end up on
version 4.x.

[1]:http://robots.thoughtbot.com/rubys-pessimistic-operator
Prevent tasks from being loaded twice

We want to set the `:scm` to `:rsync` to prevent loading the default SCM deploy
tasks.

Capistrano will auto-load the SCM in 'capistrano/setup'. By setting the `:scm`
to `:rsync` and loading 'capistrano/rsync' in the Capfile, the tasks would be
loaded twice.

By moving the tasks out into its separate file (strategy/rsync.rb) and using
`require` to load it in 'capistrano/rsync' we avoid having the tasks being
loaded twice.

Setting the `:scm` to `:rsync` is obviously a ugly hack, since Rsync is not a
SCM, but it is the only work around I can see for now, until
capistrano/capistrano#929 is resolved. It essentially works by setting the SCM
to be a no-op.
Use `within` in favor of `Dir.chdir`

By using `within` we get some debug information from Capistrano on which
directories it executes the commands in.
Only rsync to release servers
Set some default `:rsync_options` settings
Rewrite src & dest path generating
Ensure UTF-8 encoding for gemspec

Hopefully this will fix the following error:

    syntax error, unexpected $end, expecting keyword_end gem.author = "Andri Möll"
Add set_current_revision
Change stage task