Adding basic test for InputState model.
First commit of support for pluggable output modules (stream forwarders)
Adding property to jackson annotation reference, bumping jackson version
Adding ObjectId serializer to ObjectMapper, adding exception handlers

This allows us to return ObjectIds which are properly serialized by
Jackson.

Splitting up server/radio binding for ObjectMapper, because the ObjectId
serializer is not available (and not needed) in the radio module.
Adding exception handlers to Jersey for our own NotFoundException and
ValidationException, so we can just throw instead of wrap them.
Adding exception Mappers for NotFound/ValidationException
Properly injecting ObjectMapper instead of allocating manually.
Adding set of ExceptionMappers during REST API initialization.
Adding inherited constructors so message/cause can be passed.
Adding new REST permissions for output management.
Adding basic support for outputs.

Outputs are created globally and assigned to streams individually.
This means a single output can be associated with multiple streams, just like inputs.

To reproduce these associations, the logic on the server is split in two parts.
The OutputResource is used to manage outputs themselves, the StreamOutputResource
is used in order to manage associations between streams and outputs.
Simplifying Stream(Rule)/UsersResources and StreamRule model a bit.
Merge branch 'master' of github.com:Graylog2/graylog2-server
Merge branch 'outputModules'