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 
I wonder if we even need to do this json serialize-and-immediately-deserialize iteration.

Is there any benefit to supporting codecs in this input? Otherwise we can just do `LogStash::Event.new(hit["_source"])` ?