Created IChassisCapability interface.

IChassisCapability is defined and ChassisCapability implements it.

ChassisCapability implementation is independent of sendMessage method, as this method is to be removed.
But still sendMessage is used in refreshActions.

createActionAndCheckParams method has been created in Abstract capability to reuse it in others.
ICapablity does not extend ILifecycle.

We don't want to export ILifecycle interface together with ICapability.

ICapabilityLifecycle interface has been created. It export ILifecycle methods and extends ICapability.
Resource uses ICapabilityLifecycle to manage it's lifecycle. IResource interface exports them as ICapabilities.

To get a particular capability from a resource, a method in Resource should be used:
- resource.getCapabilityByType(String capabilityName)
- resource.getCapabilityByInterface(Class<ICapability> interfaze)

KarafCommands should use these methods.
Added TODOs for removing some abstract methods in Abstractcapability.

Methods to remove are the ones regarding lifecycle.
Removed sendMessage() method from ICapability.

AbstractCapability was using this method, so it has been refactored too:
- Created IQueueingCapability with required operations to create actions and queue them.
- Made AbstractCapability implement IQueueingCapability.
- Update AbstractCapability methods to use IQueuingcapability ones instead of sendMessage
With above changes, sendMessage is not required any more in ICapability and can be removed.
The problem is sendMessage is used also as each operational capability interface.

Instead of changing each capability implementation, we added a temporary hack:
- Capabilities using sendMessage as operational interface now have this method declared in their specific operational interfaces.
This hack should be removed when desired interfaces are defined.

Karaf commands have been updated to cast required capability to its operational interface,
thus, gaining access to desired methods (sendMessage included).

This patch also:

- Removes abstract methods for managing lifecycle in AbstractCapability.
Capabilities using them now override the corresponding ICapabilityLifecycle methods.

- Removes setState method from ICapabilityLifecycle interface.
Merge branch 'develop' of github.com:dana-i2cat/opennaas into feature/capabilities-interface
Make unit tests compile.
Make all capabilities extend ICapability.
Update extensions/bundles so they compile.
Make all integration tests compile.

sendMessage method has been temporary added to IChassisCapability.
Use ICapabilityLifecycle.State instead of ILifecycle.State in capabilities.

ICapabilityLifecycle.State is used in capabilities.
ILifecycle.State is used in Resources (this may change in the future to IResourceLifecycle.State).
Fix minor errors introduced when refactoring capabilities.

All tests pass (utests and itests).
Create and Delete logical router actions accept a ComputerSystem as parameter.

ComputerSystem is accepted instead of only a String with its name.
Those actions check given ComputerSystem's name is not empty in checkParams, and use the name in the template, just as before this patch.
Fix error in createActionAndCheckParams method.

This method was not failing when action.checkParams method was returning false.

This patch causes createActionAndCheckParams to launch a CapabilityException if action.checkParams returns false.
It also implements checkParams in an action where it was badly auto-generated.
Merge branch 'develop' into feature/capabilities-interface

Conflicts:
	extensions/bundles/bod.capability.l2bod/src/main/java/org/opennaas/extensions/bod/capability/l2bod/shell/RequestConnectionCommand.java
	extensions/bundles/bod.capability.l2bod/src/main/java/org/opennaas/extensions/bod/capability/l2bod/shell/ShutdownConnectionCommand.java
	extensions/bundles/queuemanager/src/main/java/org/opennaas/extensions/queuemanager/QueueManager.java
Fix error with action names.
Merge pull request #127 from isartcanyameres/feature/capabilities-interface

Feature/capabilities interface