Implement `protocol => http` in elasticsearch output

Also add `action` setting to allow logstash to signal document
deletions, updates, etc. The goal is to support any bulk request with
this output plugin, but the early target is simply to allow deletes.

This is one step in the path to having only one elasticsearch output
plugin and eventually removing elasticsearch_http.

The following tests pass
    % bin/logstash rspec spec/outputs/elasticsearch.rb
    ...
    Finished in 1 minute 33.94 seconds
    3 examples, 0 failures

Tested manually 'elasticsearch { protocol => http }' with success.

Still to be implemented:
* template management
* tests to cover all protocols: node, transport, and http
* mark elasticsearch_http as deprecated?
Use ftw instead of elasticsearch-ruby for bulk indexing

In tests, using ftw directly results in 30% more events/sec than using
elasticsearch-ruby for bulk requests.
InetSocketTransportAddress needs port to be a number, silly me.
Add another strong note about NodeClient and firewalls
Add tests for templates and all 3 protocol settings
Set a default node.name

This now causes logstash elasticsearch NodeClients to show up in the
cluster node list as "logstash-<hostname>-<pid>-xxxx"

This should help all users identify logstash nodes among their cluster.
Implement template management

Tests pass against ES 1.0.0:
  % bin/logstash rspec spec/outputs/elasticsearch.rb -e 'index template expected behavior' --fail-fast
  Finished in 27.57 seconds
  15 examples, 0 failures
Fix typos and test failures