Interface to be used by CAMP, TOSCA, etc. application description implementors

* The implementors will register themselves with brooklyn.
* To instantiate an app from an unknown spec type all registered providers will be tried until success.

Implementations for CAMP & TOSCA to come as separate PRs.
shall we annotate that as @Beta ?