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
Add support for git submodules