Fix bug 2420.
Add most of the implementation allowing fixed shapes. That is, the label has no effect on the shape size but can stick outside. The full size is used for overlap removal, but only the shape is used for edge routing.