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.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23263 3bd1e089-480b-0410-8dfb-8563597acbee
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).

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23264 3bd1e089-480b-0410-8dfb-8563597acbee
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

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23265 3bd1e089-480b-0410-8dfb-8563597acbee
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).

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23266 3bd1e089-480b-0410-8dfb-8563597acbee
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.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23267 3bd1e089-480b-0410-8dfb-8563597acbee
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).

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