replace json parsers with JrJackson and Oj

I did benchmarks for both a *typical* event json document of 1.3Kb and a huge 45Kb document for our big documents use cases.

1.3Kb json doc: from ~16k/sec to ~30k/sec
45Kb json doc : from 850/sec to ~3.5k/sec

my bechmark is using a generator input config
```ruby
input {
  generator {
    message => "stdin"
    count => 500000
    codec => json
  }
}
output {
  stdout {
    codec => dots
  }
}
```
and TPS measured using
```sh
cat file.json | (sleep 10; cat -) |  bin/logstash -f bench.conf | pv -Wbar > /dev/null
```

Here are the changes summary:
- new `LogStash::Json` class as abstraction for everything json
- new `LogStash::Timestamp` class to solve a Ruby Time + JrJackson serialization problem and cleanup everything timestamp related
- refactored/cleanedup `LogStash::Inputs::Elasticsearch` input and added a basic spec
actually, I'm having second thoughts. the condition in the json filter where the event timestamp is overwritten by a json timestamp string might require a multi-format kind of parser because we don't know its format. Timestamp.parse_iso8601 might be too strict? we can decide that if your json contains a @timestamp field it has to be in iso8601 otherwise it wont parse. or we could add an option to map a colliding timestamp into another field and so that the date filter can be used on it afterward. 

thoughts?