Allow deploying a specific `revision` of the application in the "rails" recipe

Used eg. to deploy a different branch then master.
[SEARCH] Added configuration for Elasticsearch nodes

This commit adds support for search nodes running Elasticsearch.

* The "elasticsearch" cookbook [https://github.com/elasticsearch/cookbook-elasticsearch/]
  has been added to the Cheffile

* A Vagrant VM named `search` has been added

* A `search` role has been added

* Node configurations (*.json) for Vagrant and EC2 have been added

* The Capistrano tasks have been updated to reflect the changes

To deploy in EC2:

    # Update packages
    #
    RUBYGEMS_EC2_SEARCH=abc-123.compute-1.amazonaws.com \
    DEPLOY_USER=ubuntu \
    DEPLOY_SSH_KEY=~/.ssh/mykey.pem \
      cap rubygems.org invoke COMMAND='sudo apt-get update' SUDO=true

    # Install Chef
    #
    RUBYGEMS_EC2_SEARCH=abc-123.compute-1.amazonaws.com \
    DEPLOY_USER=ubuntu \
    DEPLOY_SSH_KEY=~/.ssh/mykey.pem \
      cap rubygems.org invoke COMMAND='curl -# -L http://www.opscode.com/chef/install.sh | sudo bash -s --' SUDO=true

    # Run Chef
    #
    time \
    RUBYGEMS_EC2_SEARCH=abc-123.compute-1.amazonaws.com \
    DEPLOY_USER=ubuntu \
    DEPLOY_SSH_KEY=~/.ssh/mykey.pem \
      cap rubygems.org chef:search

Related: rubygems/rubygems.org#455
[SEARCH] Added a template for Elasticsearch application initializer

The `elasticsearch_url` variable is set in the "secret/rubygems" data bag,
similar to setting PostgreSQL host, etc.

Alternatively, an environment variable `ELASTICSEARCH_URL` could be used.

Related: rubygems/rubygems.org#455