The 2 code sequences

         if(this is IPersistable)
            (this as IPersistable).LoadFrom(ComponentManager as IPersistency);

         if(this is IPersistable)
            (this as IPersistable).SaveTo(ComponentManager as IPersistency);

during Loaded() and Save() were repeated over and over.

I now relocated those into the parent class, "Component", and removed all its
repeated and repeated implementations from the child classes.

This simplifies the lifecycle code of components significantly.

If you want your component to persist something, your implementation now becomes very, very simple:
1. simply inherit from IPersistable
2. implement its functions

The functions will automagically get called at appropriate times by the DockingFramework.