Update foreman to work with command mapping

The current implementation does not honor command mappings. For example,
adding foreman to the list of `bundle_bins` used by the
capistrano-bundler gem should prefix the foreman execution with `bundle
exec`, but this does not happen in the current implementation.

This commit fixes the issue by passing in the command as an argument
array rather than a single string. This allows `SSHKit::Command.new` to
properly identify `foreman` as the command and apply mappings
accordingly.
Use the logged in user as the default for foreman

In a vanilla installation of capistrano, no `:user` variable is ever set
which leaves `:foreman_user` undefined. This update defaults the
`:foreman_user` to the user used to login to the host, which should be a
more useful and generally accurate default.
Allow the upstart command to be customized

In my usecase, I am using [user
jobs](http://upstart.ubuntu.com/cookbook/#user-job) to control the
application. This allows me to avoid giving sudo access to the deploy
user; however, by default the deploy user does not have `/sbin` in the
`$PATH`. This change allows me to set `upstart_cmd` to `/sbin/initctl`
so the deploy user can start/stop the app. It also provides better
integration with the command mappings in SSHKit by using a single
command (`initctl`) and calling execute in a way that allows the command
to be properly identified.
Merge pull request #2 from devin-c/friendly_foreman

Update foreman to work with command mapping
Merge pull request #3 from devin-c/configurable_upstart

Allow the upstart command to be customized
Honor the :no_release setting on a server

This allows a user to flag a server with `:no_release => true` to bypass
relase tasks. The method used to accomplish this was copied from
[capistrano/bundler](https://github.com/capistrano/bundler/blob/master/lib/capistrano/tasks/bundler.cap#L64-L65)
Merge pull request #4 from devin-c/honor_no_release

Honor the :no_release setting on a server
Revert to using sudo over as(:root)

Using sudo should be safer in practice because it is easy to control
through the sudoers file. `as(:root)` requires unlimited access to the
root user, which is probably not what we want.

This reverts foreman and upstart back to using sudo, but the
implementation relies on SSHKit's command map prefixes. This eliminates
the need to branch in every task that may or may not need sudo.
Merge pull request #5 from devin-c/revert_as_root

Prefer sudo over as(:root)
Merge pull request #1 from subosito/master

update