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
Allow deploying a specific `revision` of the application in the "rails" recipe

Used eg. to deploy a different branch then master.
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.
[FIX] Updated the "rubygems_db_master" Chef role

* Removed hardcoded addresses, added defaults for Vagrant-based deployments (eg. `33.33.33.10` as the address)
* Added missing default "postgres" user
* Added listening on all addresses by default
* Changed database name to "rubygems_staging" to reflect the current setup naming