ENH: Custom style for slicer

Allow the slicer to use custom styles. This rests on the Qt style plugin
framework. The style plugins must be compiled with the same Qt as slicer,
in the same mode (debug, release...) and in shared library mode.
To facilitate the creation of new plugins, a cmake macro was added to
slicer cmake directory.
Every slicer style must inherits from qSlicerStyle. They are not detected
by the application otherwise.

The new styles can be set like modules. A setting page is added for them
where user can specify the directory containing his plugin. The additionnal
paths and the style key are added as settings. This means that the next
time slicer's session is opened, the application will automatically load
the custom style if it still exists.
Adding or removing paths necessit the application to be restarted. This
comes from the fact that the QStyleFactory is only updated upon its
creation which only happens when starting the application.
Changing the style however doesn't need to restart the application.
At this occasion, a Slicer dark style was added to the list of available
styles.

On the implementation side, the designer plugin export definition was
shortened and includes the "DESIGNER" term so it is different than the
style export macro.

Finaly, adding a fix to the slice controller widget label style so
it can work with the new dark style.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22235 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Group appearance related settings together

The settings in General that are related to the slicer's look were moved
to the style setting panel. At this occasion, this panel was renamed
Appearance.
This allow a better grouping of the application customization option for
an easier user experience.

Also used the occasion to add tooltips to these options.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22236 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Exclude mrml extension from git hook line lengths check

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22237 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fix MacOS style library fix up

Following r22235, slicer couldn't start on Mac due to the style. In the
libraries fixup, the styles plugins weren't properly bundled.
Adding the style library fixes that.

Fixes #3253

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22238 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Remove forgotten Qt style

The style Macintosh (aqua) was still available on MacOS in the settings
even though it's a default Qt style.
Adding it to the list of Qt default style removes it.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22239 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Ensure qSlicerStyle is used when using SlicerApp-Real

When the launcher isn't used, for example when using SlicerApp-Real
directly, the plugin library cannot be found before the qSlicerApplication
is created. (QT_PLUGIN_PATH isn't set).

However once the application is started, the current location of the
executable is automaticaly added to the application library paths by Qt.

See Qt-doc: http://qt-project.org/doc/qt-4.7/qcoreapplication.html#id-a4ff2599-e40c-4218-82e7-14e570ebf822
"The directory of the application executable (NOT the working directory) is always added (...)"

Since this also corresponds to the location that needs to be set for the
plugins, the styles are automaticaly discovered.

See also the discussion:
http://massmail.spl.harvard.edu/public-archives/slicer-devel/2013/013320.html

Fixes #3252

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22240 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Ensure Slicer dashboard packaging works if svn not in path

During recent windows factory maintenance, the path containing svn has
been removed from the PATH so that git bash could work with git svn.

As a side effect, dashboard windows packaging ceased to work.

Discussion: http://slicer-devel.65872.n3.nabble.com/Windows-nightly-not-on-download-page-tt4029503.html

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22241 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Add pointlist support to OpenIGTLinkIF and fix warnings

Fixes #3077
Fixes #3248

Co-authored-by: Isaiah Norton <inorton@bwh.harvard.edu>

From: Junichi Tokuda <tokuda@bwh.harvard.edu>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22242 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: 3191. Added ability to select multiple ROI labels in the interactive seeding module

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22243 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Add possiblity to enable/disable module paths

Fixes #2256

Signed-off-by: Chrystel Juan <chrystel.juan@kitware.com>
BUG: Updates done during Thursday afternoon discussion
ENH: - enable disable additionnal path
ENH: Work following discussion of Monday July 29th