===================================================
This commit is an independent refactor of the identifications used at Sketcher level.
It introduces a new type "GeoElementId" as a combination of GeoId and PointPos.
It moves the Undefined GeoId, previous Constraint::GeoUndef to GeoEnum, together with all
other fixed values of GeoIds.
=================================================================
Common utility functions used by almost all Command classes were previous in Constraint.h.
Aside from providing a very bad intent, it created unnecessary header dependencies.
This commit separates these common functions into a new header, utils.h, which is then
used in all command classes where it is necessary.