Use methods to access CapabilityInstances in BindingManagement.
BindingManagement reacts to resources removal.

On resoure removal, BindingManagement unbinds CapabilityInstance(s) bound to that resource
and recalculates dependencies.

TODO: unbind in cascade.
Injectable core services in BindingManagement.
Move OSGi aware functionallity in BindingManagement to Activator.

BindingManagement is NOT aware of the existance of bundles.
Instead, it holds a set with capability classes known to it, and another one with aplications.
It uses these sets for the binding mechanism.

These sets are updated whenever a capabilitiesAdded/Removed or applicationsAdded/Removed callbacks are received.

In an OSGi environment, available classes may change when bundles enter or leave the system.
Thus, the Activator (an OSGi aware class) is now:
- tracking bundles
- detecting changes in the availability of capabilities and applications
- and notifying BindingManagement for these changes

This separation allows the creation of unitary tests for BindingManagement.
Resource and capability instances tree
Utility methods yo manage the resource tree
Interfaces defining methods to deal with the resource tree and its modifications.
Prepare BindingManagement to use the resource tree.

Implement IBindingManagement, IBindingManagementEventListener used to manage the resource and capabilities tree.

The logic has been implemented but it is not yet being called when resources, capabilityclasses and applicationclasses are added/removed in the system.

TODO: Replace all model with the new one (now data is duplicated). Remove unused methods.
TODO: Modify ResourceMonitoringFilter to report which capability instance is launching the event.
Replace old logic with new one

TODO: Remove boundCapabilities attribute, it duplicates info in the tree.
TODO: Ensure the correct service is registered as an observation.
Tests for BindingManagement
More readable unresolve implementation.
Non ambiguous IServiceProvider interface.

getService(IResource resource, String name) replaced by
getService(IResource resource, String name, Class<?> parameterTypes)

It now takes the service parameters as a parameter,
which allows for distinguishing between different services with same name.
Improve getCapabilityInstancesBoundToResource implementation.

It now uses the tree.
It locates the node holding given resource and retrieve bound capabilities directly from it.
The costly operation is locating the resource in the tree.
Unambigously registration for BindingManagement services in observationService.
Improve efficiency of unresolve(CapabilityInstance) method.
Update javadoc
Fix accessing null when resource does not exist
Use classloader with access to all capability interfaces in CapabilityInstance proxy.
Implement isSupporting in BindingManagement supporting only core resource.

Avoids following message when loading core bundle:
No way of establishing bind with Capability org.mqnaas.core.impl.BindingManagement. No isSupporting(...) implementation found.
Add some logging messages in BindingManagement (using System.out)