Feature/allow the use of metadata

- Allow to store Elasticsearch document information in the `@metadata` field or somewhere else.
- Allow the user to specify which fields to move,  the default is _index, _type, _id
- Change the default query to elasticsearch to  '{"query": { "match_all": {} } }' 
- Try to merge if the target field exist.

I took this https://github.com/elasticsearch/logstash/pull/1644  as the original starting point 
You don't have to change this, but you can do:

```ruby
insist { event }.is_a?(LogStash::Event)
```

insist wraps the object and any predicate-style methods (ending in "?") are delegated to the wrapped object and if it returns a falsey value will raise an InsistFailure - https://github.com/jordansissel/ruby-insist/blob/master/lib/insist/predicates.rb#L23-L40