ElasticSearch output plugin to support multiple hosts and enhance stability. (by Hao Chen)
Closes #1791
Use v1.9.3 for gem ci_reporter. Fixes Jenkins tests
Add metadata via @metadata field

This makes @metadata basically a way to store data along with an event
that is *NOT* included when serialized to an output.

Use cases:
- For elasticsearch output, set the index, type, document_id, routing
  key, etc with metadata and you won't be burdened by storing a filed
  named 'index' in your document!
- For elasticsearch input, we can set @metadata fields for the
  index/type/document_id instead of polluting the event data itself.
- No need for "short-lived fields" such as timestamps. For example, a
  common pattern is to use grok to capture a timestamp text  and give that
  to the date filter and finally use mutate to remove that captured text
  field.
- Provide a kind of scratch space for events that are not part of the
  event data.

Fixes #1834

Fixes #1836
move to using copy_to and move_to, use aws_config mixin, support adding a prefix on backup
add ability to exclude keys, if backing up to the same bucket + backup_add_prefix, automatically excluded keys starting with the backup_add_prefix
Fixing an issues with the exclude_pattern, adding a few test to guard the list_new method
Splittings the process_local_log method into smaller independant parts for testing
fix spec on the ordering of the files
Test for creating backup files on disk
We dont to manually check for the presence of the bucket its already done with the config mixin
fix the contributors conflict