Adds a new class as parent of most of the tool extension

isVisible method of most tool extension share the same code so
is pushed up to a new common class
Push up common isEnable methods to BaseCADExtension
New common method for register an icon in the default theme
Extract as constant the icon path and key, and the key of the cad tool
Fixes some bad icon keys
Extensions can now implement custom enable checks

An implementation have been done for those that have not been
refactored in previous commit (Those that use the selected features
as a condition for being enabled)
isEnable of ShortcutsExtension must return false always
Adds a new tool: 'Add Part'

The new tool allows draw new geometries/parts on existing features to
get a multi-geometry
Uses a simpler method to generate a GeneralPathX from a IGeometry

Use the constructor public GeneralPathX(Shape s) instead of recreate
the path is a simpler. The only significant difference between both
is that the previous method iterate the points flattening it, and
the new one, not flattens the arcs.

But, as the arc tools in gvSIG are already flatening the paths in the
endGeometry method doing it again, is in general pointless
Fixes a null pointer exception when the tool doesn't use the pop-up menu
Small Refactor

* Creates a couple of new utilty methods in VectorialLayerEdited
* Adds javadoc for getName() method in CADTool
* CastClasException check in DefaultCADTool
Adds a new tool: Remove Part