Implemented basic cross-tool editing.

Deactivated methods now have a reference to the tool being activated and
can determine whether or not it is editable. The BaseEditEngine's
ShapeEngineCollection SEngines is now static, meaning that all of the
editable tools share one collection for everything. Work still has to be
done to make the cross-tool shape editing work as it should though.