Unbreak outputs API endpoint.

* Return `id` instead of "_id".
* Ensure correct serialization of the "id" field.

The rest client now expects an "id" field instead of "_id". This is
probably due to the port from Gson to Jackson for JSON.

The serialization of the ObjectId broke with commit 3f7ef53 when the
JerseyObjectMapperProvider got replaced by ObjectMapperProvider.
ObjectMapperProvider does not serialize the ObjectId correctly because
it is also used in graylog2-radio where no MongoDB library is available.

Instead of reverting the JerseyObjectMapperProvider change I converted
the ObjectId in OutputImpl.asMap() to a hex string because other data
models do the same.
It is not really nice this way but at least consistent with the other
models.

(cherry picked from commit f5b7d46)
Add another constructor to pass the field name as well.

(cherry picked from commit 0d13fd519d0c57747f2e42e81fd42999f81b7769)
Make sure output plugin configuration gets stored with correct types.

The plugin configuration should also be parsed with Jackson instead of
using Map<String, Object> to avoid such hackery. This would require that
the plugins ship POJOs for their config values though and that's a
bigger refactoring with breaking changes...

Fixes #733

(cherry picked from commit cf66f95e1b6cb2980bdd1c455786f1d38476c1aa)
Fix name in API docs for Outputs endpoint.

(cherry picked from commit 288607c076c3666a9a320e82a50ea70365ce9cc3)
Unbreak timestamp deserializing in the message cache and add tests.

A missing manual conversion of the serialized timestamp (a long) to a DateTime
object in the deserialize method caused the timestamp to be stored as a
long in Elasticsearch.
This wasn't catched by static typing because the Message object stores
all fields in a "Map<String, Object>" and Jackson happily deserialized
the field into a long.

The current Message implementation also does not allow to set the "_id"
field. That means there was no "_id" field in the deserialized Message.
The deserializer now creates the Message object in a different way so
that there is an "_id" field in the message.

That means that the message has a new "_id" after
serializing/deserializing! This cannot be fixed without refactoring the
Message class.

Fixes #728.

(cherry picked from commits 18c471e 9cc4739)