ENH: Add support for node reference templates

In vtkMRMLSelectionNode, the exact name of the reference roles of a unit is
not known until the unit is set and observed. (it's a dynamic number of
unit reference roles). By using a special key '/' in the reference role
(e.g. "unit/"), it is possible to have multiple reference roles
(e.g. "unit/length", "unit/time"...).
Issue #2727

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22188 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Restore the selection node units on scene close

Re-enable Units module.
Closes #3176, #3152

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22189 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Improve qMRMLUnitWidget interface

QFlags were added to this widget so one can choose what properties are
visible or not. This is what is done in the qSlicerUnitsSettingsPanel to
hide the advanced properties of the unit to the user. By default, the user
can only modify the precision property.
If he choose to show more properties, a warning stating that only display
values are changed when modifying an unit is shown along with the other
properties.

Style wise, the groupbox title now has its first letter in uppercase to
follow the GUI conventions and a horizontale line in the
qMRMLUnitNodeWidget between the precision and the rest of the properties.

See Issue #3137

From: Johan Andruejohl <johan.andruejohl@kitware.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22190 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fix modules depending on units

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

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22192 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fix Volumes module decimals behavior

* make sure qMRMLVolumeInfoWidget gets setMRMLScene called before
the current volume node combobox. This is important because
qMRMLSliderWidget can change the number of decimals from the units node.
Such decimal number should be overwritten by the value of the spacing (or
origin).

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