Add ability to filter tasks to specific servers (host filtering).

This commit adds the ability to control what servers are involved in an
task from the command line, or by setting an environment variable.

The filter contains a list of servers; these are the only servers that
will be involved in the task.

For example, if you had three servers defined in your configuration
(server1, server2 and server3), you could deploy to only server1 by
doing either:

    cap --hosts server1 production deploy

Or:

    HOSTS=server1 cap production deploy

Multiple servers can be specified by separating them with commas:

    cap --hosts server1,server2 production deploy
    HOSTS=server1,server2 cap production deploy

Host filtering happens after role filtering, and does not change what
roles a server will respond to.
Use an SCM object with a pluggable strategy

I've taken the responsibility for executing scm commands away from the
rake tasks and have placed them in an SCM object. This object can be
loaded with any given strategy.

A default strategy is supplied (the commands as they where in the rake
tasks)

Moved Hg to the new strategy pattern
Set I18n.enforce_available_locales=true to fix deprecation warning.
Don't set enforce_available_locales for older version of i18n.

Versions of the i18n gem < 0.6.6 don't have this option.
Merge pull request #832 from mbrictson/fix-i18n-deprecation

Set I18n.enforce_available_locales=true to fix deprecation warning
Merge pull request #828 from coffeeaddict/decapsulated-scm

Decapsulated scm
Merge pull request #810 from forward3d/host_filter

Add ability to filter tasks to specific servers (host filtering).
Prepare for 3.1 release
Lock config file by default
Use the :git_environmental_variables settings when updating from remote origin.
:scissors: trailing whitespace
Merge pull request #841 from bricker/whitespace

Cleanup trailing whitespace
Add Ruby 2.1.0 to .travis.yml
Merge pull request #842 from salimane/pr_ruby_2_1_0

Add Ruby 2.1.0 to .travis.yml
remove rails_env from stage template
Merge pull request #849 from Kriechi/fix_stage_template

remove rails_env from stage template
Documented deploy.rb.erb template to show what the default values are
Merge pull request #852 from jackdesert/documented_deploy_dot_rb

Documented deploy.rb.erb template to show what the default values are
Merge pull request #837 from kirs/lock-config

Lock config file by default
Capistrano 3.1 post_install_message #813