Extract a pure virtual IShape interface from AbstractShapeType<T> so
selectors and Document use dynamic_cast<IShape *> instead of
qgraphicsitem_cast<AbstractShape *>. This decouples the selector
system from the template hierarchy, enabling GraphicsTextItem (backed
by QGraphicsTextItem) to work uniformly with all existing selectors.
GraphicsTextItem supports inline text editing (double-click to edit,
focus-out to finish), font/color properties via PropertyEditor, resize
with proportional font scaling, move, rotate, and full serialization.
Adds CM_place creation mode for single-click placement.