fixes #0001422: Subclass Exception

inherit Base.FreeCADError form RuntimeError
inherit Part.OCCError from Base.FreeCADError
inherit OCCDomainError from Part.OCCError
inherit OCCRangeError from Part.OCCError
inherit OCCConstructionError from OCCDomainError
inherit OCCDimensionError from OCCDomainError
Added PY_CATCH_OCC macro
replace PyExc_Exception
use FreeCADError in makeWireString
catch exception in BSplineCurve.increasedegree
removed catch (...) in Drawing

which discarded type information when rethrowing base type
issue #1700 replace PyExc_Exception
issue #1701 removed further except: statements
use exceptions in OpenSCAD module

derive OpenSCADError from FreeCADError if possible
try to use Execptions in Draft module
Sketcher new feature: Selects the elements associated with the selected constraint(s)

Ex 1: User selects constraints from the list => right click => select "select elements" from the contextual menu => The elements (edges,vertex) involved in the constraint(s) are selected.

Ex 2: User selects (a) constraint(s) => Clicks button in toolbar (if included by the user) => The elements (edges,vertex) involved in the constraint(s) are selected.

Intended as visual aid to see which elements are being affected by a constraint.

Requested by Jim on thread:
http://forum.freecadweb.org/viewtopic.php?f=19&t=6875&start=10

Solving another Mantis ticket I can not find now.
Sketcher new feature: Select Conflict and Redundant Constraints

Based (and solves) Mantis ticket:
http://www.freecadweb.org/tracker/view.php?id=1643

The ticket refers only to redundant, and ask for deletion.

Two commands are created, one for redundant constraints and other for conflicting constraints.

As usually removing one constraint of the "at least one" is sufficient, the implementation selects the constraints (but does not delete them).

The user therefore easily identify the constraints involved and decide to delete them.

This implementation takes into account the edit->Actsketch that ViewProvidedSketch creates for solving, as it is this instance the one that generates the messages in the Sketcher Taskbar.

No buttons in the toolbar by default (can be added by the user), but an hyperlink in the solver messages which triggers the selection of the appropriate command (conflicting or redundant).
Sketcher Redundant/Conflicting art by Jim
Sketcher visualization: Increase readability of redundant constraint solver message

Color changed to "OrangeRed" to improve readability.
Draft: Added progress bar to dxf library download - fixes #1644
Sketcher feature enhancement: Symmetry constraint perpendicular to axis of symmetry

Solves Mantis ticket: http://www.freecadweb.org/tracker/view.php?id=1623
Unrelated minor fix: remove unused variable
Sketcher visualization enhancement: Do not group sketcher symmetry icons.

Do not add a symmetry constraint icon to a group of icons, so that it lies on the line or point providing the symmetry (symmetry axis/point),
as it is more clear to the user which line this is.
Sketcher Bug fix: Arrows for symmetry constraint are back

The arrows were there in the code, but at a certain point, code was written to set the this->imgHeight value programatically, based on
whether it had text or not. As symmetry constraint does not have text the variable failed to initialize. Being zero, it did not pass
the ASSERT in the render function, so it was not rendered.

This includes Werner's fix for improver cast of a SoRayPickAction to SoGLRenderAction:
SbVec2s vp_size = static_cast<SoGLRenderAction*>(action)->getViewportRegion().getWindowSize();
to
SbVec2s vp_size = SoViewportRegionElement::get(state).getWindowSize();

At least sometimes tt is a SoRayPickAction because:

When you move with the mouse over the sketcher (when in edit mode) you enter the method ViewProviderSketch::mouseMove.
Inside there the method getPointOnRay is called to get a picked point underneath the cursor. Inside the latter method
an instance of SoRayPickAction is created to traverse the scene graph. After a long cascade of function calls you
finally enter SoDatumLabel::generatePrimitives(SoAction*).
Sketcher Art enhancement: New Symmetric constraint icon by Jim

There is more space in between the > < symbols now, so it is more clear as it overlaps less.

Thanks Jim!
Sketcher enhancement: Constraint icons visible over lines
Draft: provisorily fixed error in sortEdges
Merge branch 'master' of ssh://git.code.sf.net/p/free-cad/code