ENH: Harmonize qMRMLNodeComboBox properties

Previously, the property currentNodeId of the node combobox was set with an
id (QString) and sent a signal with a node (vtkMRMLNode*) which can be
confusing in the widgets using it. Now, the node combobox as an id
property or a node property.

See Issue #1694

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22052 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Add Units module

The unit module handle the unit in slicer. The units are singleton in the
scene that belong to a quantity. So far the only quantity available are
length and time. The units are settings saved with the application.

See Issue #1694

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22053 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Add Unit compatible widget

Added new widgets that can observes the MRML scene to deduce the
current unit for a quantity type (the singleton vtkMRMLSelectionNode is
used for storage in this case).

See Issue #1694

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22054 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Apply units widget to slicer

Modified:
- Volume info widget: Made it a qMRMLWidget so it can propagate the
mrml scene.
- Annotations: Add to vtk widget and GUI
- Tractography Interactive seeding: Add units to GUI
- Slice controller: add units in spinboxes
- Volumes: add units to GUI
- Editor: add units to paint and island effects

See Issue #1694

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22055 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Only one unit per quantity accessible to the user

Now only one unit per quantity is accessible to the user. This unit can
be customized and it's logged in the settings so it can be restored
when opening the application.
On the implementation side of things:
- Add access method to all the referenced unit nodes in the selection node
- Remove the unit widget
- Hide module
- Create the unit widget to easily customize units (add the plugins with
it)
- Create the unit settings widget using the unit widget. This widget
is tailored to be used in the setting panel (no plugin)
- Refactorize the setting panel to use the setting unit widget and
log the unit node properties
- Create only node for each quantity exposed to the user. The preset nodes
are kept in a special scene in the logic.

See Issue #1694

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22056 3bd1e089-480b-0410-8dfb-8563597acbee