BUG: Added error reporting for scene file writing

The problem was that when the scene file (.mrml) saving
failed (e.g., because target was a read-only directory) then
no error was reported.

No error was reported for the sceneview thumbnail image
saving failure either.

From: Andras Lasso <lasso@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23246 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: Improve readability of subject hierarchy logic test using vtkNew

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23247 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: Improve error output of TestTreeOperations in subject hierarchy test

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23248 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Simplify vtkMRMLTransformableNode::GetParentTransformNode

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23249 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Update subject hierarchy PopulateScene to check nodes are added.

This commit basically removed the assert and add corresponding
test.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23250 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: Update vtkMRMLSubjectHierarchyNode to use vtkNew

Also fixes indent

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23251 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: Improve error output of subject hierarchy TestTransformBranch

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23252 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Don't install already-installed dependencies

When considering an extension's dependencies, don't prompt about (or
attempt to (re)install) dependencies that are already installed.

Issue #2912

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

Add rules to install the SlicerWizard modules. This gets us one step
closer to having the extension wizard available from an install tree,
and also makes the SlicerWizard package available from within Slicer
itself.

Note that installation of the SlicerWizard modules is conditional on
Slicer_BUILD_EXTENSIONMANAGER_SUPPORT being enabled.
ENH: Add "introspection" to TemplateManager

Add new methods to TemplateManager to get the list of known categories
and available templates (the latter taking an optional category). These
are helpful for allowing the user to select from available templates in
cases where listTemplates() is not optimal (e.g. from a GUI).
ENH: Create in-Slicer Extension Wizard (skeleton)

Create the initial skeleton of the in-Slicer Extension Wizard. This will
provide a graphical front-end to (some of) the Extension Wizard
functions. Right now, only creation is implemented.

Issue #3603
BUG: Fix TemplateManager unicode support

Add a helper function (in SlicerWizard.Utilities) to detect the
character encoding of an input byte sequence. Use this in
TemplateManager to correctly handle encoding conversion of template
files in case the replacement text is a unicode, rather than a str
(which otherwise results in an exception when automatic conversion tries
to convert non-ASCII files).
ENH: Add python-chardet external project

Add external project for chardet Python module used in the previous
commit, so that we have actual detection available and not just ASCII
vs. "don't know". Like GitPython and friends, this is only enabled if
Python and extension manager support are enabled, and system Python is
not used.
ENH: Improve styling of wizard actions

Replace the QPushButton extension wizard actions with "flat"
QToolButton's, using (for now) a forward-arrow icon. This gives a
cleaner look than the odd stack of unusually wide buttons, that is
loosely based on Windows wizards (which were the only example of a
list-of-possible-actions - as opposed to list-of-steps - type wizard I
could find).
ENH: More work on in-Slicer Extension Wizard

Add some widgets to the 'edit extension' section to show basic
information about the selected extension, and hook up the ability to
select an extension. There is a not-yet-implemented 'edit metadata'
action that will likely be joined eventually by other actions.

Issue #3603
BUG: Improve ExtensionDescription robustness

Fix ExtensionDescription to not fail in case of a git repository with no
commits, and/or a local git repository with no remotes.
STYLE: Use properties in CreateExtensionDialog

Change CreateExtensionDialog classes to subclass object, which is needed
to give them properties (they weren't originally as there seems to be
some problem if a module's primary classes derive from object). Change
accessor methods of the same to Python properties, which are slightly
more convenient and "more Pythonic".
ENH: Create editable tree widget

Create utility widget class EditableTreeWidget, for extension wizard
module. This will be useful for editing extension metadata that takes
the form of lists, e.g. contributors.
BUG: More unicode support fixes

Add support for conversion-to-unicode to CMakeParser. Fix str conversion
to more explicitly avoid having unicode in the results. Add encoding
detection and support to ExtensionProject. This should make it possible
to work with non-ASCII unicode in an ExtensionProject.
ENH: Make ExtensionProject.project writable

Add a setter for the ExtensionProject.project property, allowing users
to change the name given to the project() call of a corresponding build
script (CMakeLists.txt).