ENH: allow dynamic update of the slice viewer label

This feature is helpful to inform the user of the slice viewer content without
using extra screen space. Resolves issue 3427

From: fedorov <fedorov@3bd1e089-480b-0410-8dfb-8563597acbee>

git-svn-id: http://svn.slicer.org/Slicer4/branches/Slicer-4-3@22575 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fix vtkObserverManager warning happening after loading a file.

This commit ensured that the observer associated with MRMLNodesCallbackCommand
are removed also if the file is successfully loaded.

Warning: In /home/jchris/Projects/Slicer/Libs/MRML/Core/vtkObserverManager.cxx, line 59
vtkObserverManager (0x3b99ce0): The callback is not deleted because there
are still some observation. They seem to not have been registered into
the event broker.

From: jcfr <jcfr@3bd1e089-480b-0410-8dfb-8563597acbee>

git-svn-id: http://svn.slicer.org/Slicer4/branches/Slicer-4-3@22576 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Prevent leaks when factory methods are used from python

There is currently no automatic/clean mechanism to release the object
created by factory methods.

The only "hack" that exists for now is to decrease the reference
count manually in your code:

For more details, see [1], [2], [3] and [4]

[1] http://wiki.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/Tutorials/MemoryManagement
[2] http://massmail.spl.harvard.edu/public-archives/slicer-devel/2011/007513.html
[3] http://www.vtk.org/Bug/view.php?id=12139
[4] http://www.vtk.org/pipermail/vtk-developers/2011-April/009757.html

From: jcfr <jcfr@3bd1e089-480b-0410-8dfb-8563597acbee>

git-svn-id: http://svn.slicer.org/Slicer4/branches/Slicer-4-3@22577 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fix memory leaks in vtkMRMLModelSliceDisplayableManager

See inlined comment for details.

This commit will also avoid leaks (and by extension ensure they
pass when leaks detection is enabled) in the following tests:
  py_NeurosurgicalPlanningTutorial
  py_ThresholdThreadingTest
  py_NeurosurgicalPlanningTutorial
  py_ScenePerformance

From: jcfr <jcfr@3bd1e089-480b-0410-8dfb-8563597acbee>

git-svn-id: http://svn.slicer.org/Slicer4/branches/Slicer-4-3@22578 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fix qMRMLSliceControllerWidgetTest

Following r22568, the controller has been updated so that the abbreviated
slice name can be dynamically updated after the "LayoutLabel" has been
changed on the associated slice node.

This commit clean up the code removing un-needed ivar "SliceViewLabel" and
fix the test.

Finally, also set "sliceViewLabel" as a property so that is accessible
from python.

From: jcfr <jcfr@3bd1e089-480b-0410-8dfb-8563597acbee>

git-svn-id: http://svn.slicer.org/Slicer4/branches/Slicer-4-3@22579 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: Remove unused "SliceOrientation" ivar from SliceControllerWidget

From: jcfr <jcfr@3bd1e089-480b-0410-8dfb-8563597acbee>

git-svn-id: http://svn.slicer.org/Slicer4/branches/Slicer-4-3@22580 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: In SliceControllerWidget, consistently restore "blockSignal" state

From: jcfr <jcfr@3bd1e089-480b-0410-8dfb-8563597acbee>

git-svn-id: http://svn.slicer.org/Slicer4/branches/Slicer-4-3@22581 3bd1e089-480b-0410-8dfb-8563597acbee