attribute dialog: really keep cloned feature until destruction (feature action
also need it and crash otherwise)

This reverts revert commit f618cae5e8a9c893038101db54f5ddecb5087cdf.
CAD tools, create QgsMapMoveEvent to deal with mouse event in map coordinates, QgsMapToolMapCoordinates a map tool in map coordinates
using multiple inheritance
fixes, handle several errors, display message if error
add calculation capacity using QgsExpression
remove last points, better snapping choice in filter
display error message if cad tools are not enabled
add soft angle, fix updating capacities
add soft capabilities to all constraints, fix paint item
fix filter key events
add config option for snapping and soft constraint
fix SIP
fix visibility action + error message
restore CAD enabled when reenabling map tool, map event filter is installed only when cad is enabled
force showing the dock if CAD enabled when changing map tool
remove warnings, more doc
fix keyboard shortcuts + fix key event filter
fix typo, remove useless icon, fix degree symbol
fix windows build, use Qt native function whenever possible, kudos to Jurgen for fixing this
followup e9eae570e697b1d49230389fc41538263e46ef07, use qRound instead of round