Basic support for rest controllers coming from plugins.

This is done using a static REST resource that looks up the resource
by Path. This is not a good solution because it basically does what
Jersey (or any other JAX-RS implementation) should do.
Unfortunately adding the REST resources coming from plugins as child
resources to the ResourceConfig object did not work properly.
Fix GELF message generation in GelfOutput

Previously the GelfOutput would produce incorrect GELF messages, e. g. the
timestamp was wrong (kiloseconds instead of seconds since epoch), the level
could be "null" (now the default ALERT is being used as a fallback), and the
"facility" field (optional and deprecated but nonetheless) would be overwritten.
Fix incorrect mappings of message fields in GelfOutput
Adding registered plugin REST resources to Jersey's ResourceConfig.
Merge branch 'pluggableRestControllrs'

This features allows plugins to bring their own JAX-RS resources, register
them and have them available in their own namespace based on a static prefix
(currently "/plugins/") and the package name of the plugin's binding module.
Below this, resource mappings are based solely on resource definitions.
Merge branch 'master' of github.com:Graylog2/graylog2-server
Removing import of deprecated annotation.
Removing usage of deprecated Mockito annotation.
Upgrade to SLF4J 1.7.7
Remove metrics-log4j until a version for Log4j 2.x is available
Migrate to Log4j 2.x

The primary API being used for logging is still SLF4J but the underlying
logging framework has been migrated from Log4j 1.x to Log4j 2.x. All
transitive dependencies to Log4j 1.x have been excluded and the compatibility
bridge of Log4j 2.x (log4j-1.2-api) has been pulled in instead of the SLF4J
bridge (log4j-over-slf4j).

All relevant usages of the Log4j 1.x API have been replaced by the corresponding
Log4j 2.x implementations and the default configurations have been updated to
work with Log4j 2.x (log4j2.xml and log4j2-test.xml).

The logging framework has been configured to use the new asynchronous loggers
of Log4j 2.x (see https://logging.apache.org/log4j/2.x/manual/async.html and
org.graylog2.shared.NodeRunner) which is also using the Disruptor and should
yield some interesting performance improvements for the internal logging of
Graylog2.