Adapter for the Model has been added.
Availability property has been moved to the IComponent because it is directry influeing on the component's state.
ComponentDefinition is value type now.
Component pointer hasbeen added.
install- and removeListener should be const methods (to enable install listener to the const list).
Do not clear observable list in destructor, because it leads to the extra notifies.
Update model after new componens added.
Let's model takes ownership for the adapter.