Restructure core

* New `core.api` interfaces:

  * `IBinderDecider`

    It defines whether the services present a Capability should be bound to a Resource.

  * `IServiceProvider`

    It is responsible of managing Services in the system.

  * `IResourceManagementListener`

    It is responsible of receiving notifications of ResourceManagement whenever a Resource} is added to or removed from the platform.

  * `IServiceMetaData`

    It represents data associated with a Service.

  Some of the responsibilities have just been moved from one interface to another one.

* Exceptions added to `core.api`
* Some better error messages.