Feature/dependency resolution

Dependencies between Applications are managed by DependencyManagement.
BindingManagement still manages the resource-capability tree and the pool of existing applications, but it delegates to DependencyManagement the resolvemtn of dependencies.

Applications have now an explicitly defined life-cycle:
- Freshly created applications are INSTANTIATED
- While INSTANTIATED, DependencyManagement tries to resolve application dependencies with existing applications.
- When all dependencies are satisfied, the application becomes RESOLVED.
- While RESOLVED, DependencyManagement tries to resolve the whole dependency chain of an application.
- When  the whole dependency chain of an application is resolved (all applications in it are RESOLVED), the application is activated and becomes ACTIVE.
- In case some application is removed from the system, the state of applications depending on it (or with it in the dependency chain) is updated.