Core: drop Felix ExtHttpService (#448).

The Access Control plugin doesn't register a servlet filter anymore but listens to the PRE_PROCESS_REQUEST DeepaMehta core event.

BREAKING CHANGE

PluginActivator's registerFilter() method is dropped.

IMPORTANT

This solution works for a standard DM installation but is not fully compatible with DM's previous request filtering behavoir. In particular a closed DM installation (read_requires_login=true) have a serious issue.

It turned out that request filtering via a servlet filter and request filtering via the PRE_PROCESS_REQUEST core event are **not** equivalent. While a servlet filter sees **all** requests a PreProcessRequestListener sees only the requests bound to the **Jersey servlet** but not the requests to **static resources**.

As a consequence a closed DM installation is not fully closed anymore, and in case of Safari is not working at all (Safari brings up no login dialog for a 401 response when the request was sent via XHR).

So, this commit must not meet the DM production line. Further work is required. We could either 1) further adapt the DM core in the way the PRE_PROCESS_REQUEST event is fired for static resource requests as well, or we could 2) investigate weather Pax Web provides a working custom API for deploying servlet filters (an equivalent to Felix's ExtHttpService).

See #448.
Merge branch 'master' into drop-ext-http
New core event: RESOURCE_REQUEST_FILTER (#480, #448).

This event allows to intercept with requests to static resources, both bundle resources and file system resources.

    Listener interface: de.deepamehta.core.service.event.ResourceRequestFilterListener
    Listener method:    void resourceRequestFilter(HttpServletRequest servletRequest)

To abort request processing throw a javax.ws.rs.WebApplicationException.
DeepaMehta will send the response wrapped in that WAE then (status code, headers, text entity).

BREAKING CHANGES

2 Core events are renamed:
    PreProcessRequestListener -> ServiceRequestFilterListener
    preProcessRequest()       -> serviceRequestFilter()

    PreSendResponseListener   -> ServiceResponseFilterListener
    preSendResponse()         -> serviceResponseFilter()

IMPORTANT

Dropping of the Felix ExtHttpService should be now complete. This branch could be merged into master.

In order to be nearly compatible with the (now dropped) registerFilter() method your plugin can consider implementing both, ServiceRequestFilterListener and (the new) ResourceRequestFilterListener. This ensures to intercept with each kind of request, that is service method requests (REST) as well as static resource requests (bundle resources and file system resources).

For the sake of completeness: the behavoir resulting from implementing both listeners is not fully equivalent as with registerFilter(). While the listeners see only requests bound to the registered URI namespaces the former servlet filter saw absolutely all requests, also the ones resulting in 404 Not Found. However, in practice this difference should not be relevant.

The Access Control plugin makes use of the new ResourceRequestFilterListener. Thus a private DeepaMehta installation works like before, also in Safari (see #448).

See #480.