COMP: Easier maintenance simplifying process to add remote module source

Following this commit, adding a remote module source to Slicer can
simply be done calling:

 Slicer_Remote_Add(Foo
   GIT_REPOSITORY git://github.com/john/foo
   GIT_TAG abcdef
   OPTION_NAME Slicer_BUILD_Foo
   LABELS REMOTE_MODULE
   )

As a side effect, (1) the option "Slicer_BUILD_Foo" will automatically be
added as an advanced option and (2) the CMake variables "Slicer_BUILD_Foo"
and "Foo_SOURCE_DIR" will be passed to Slicer inner build.

Additionally, by associating the "REMOTE_MODULE" label, the corresponding
source directory will be added automatically using a call 'add_directory'
similar to this one:

 add_directory(
   /path/to/Slicer-build/Foo
   /path/to/Slicer-build/Slicer-build/Module/Remote/Foo)

This happen in the Slicer/Modules/Remote/CMakeLists.txt file.

Finally, note that a new module named "ExternalProjectAddSource" has been
added, it is still experimental and should be considered as
internal to Slicer without any promise to keep backward compatibility.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22776 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: Add warning in pimpl headers explaining it is not part of Slicer API

From: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22777 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Export qMRMLTreeViewPrivate class

Associated discussion: http://slicer-devel.65872.n3.nabble.com/Export-qMRMLTreeViewPrivate-tt4030532.html#a4030536

From: Csaba Pinter <csaba.pinter@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22778 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Configure include directories into SlicerConfig.cmake

This commit adds the following variables to the config file:

For each module:

- <Module>_INCLUDE_DIRS
- <ModuleLogic>_INCLUDE_DIRS
- <ModuleMRML>_INCLUDE_DIRS
- <ModuleWidget>_INCLUDE_DIRS

and for MRMLLogic:

- MRMLLogic_INCLUDE_DIRS

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22779 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Add DataStore module as remote module.

See [1] for details about remote module.

Fixes #3400

[1] http://wiki.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/Build_system/Remote_Module

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22780 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Fix configuration adding missing parameter to ExternalProject_Add_Source

Following commit r22776, the macro ExternalProject_Add_Source has been
added and jqPlot retrieved using it but the URL and URL_MD5 parameters
were not considered. This probably happens because the jqPlot directory
was already existing.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22781 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fix "No handleSslErrors" slot run time error

Since by default moc (MetaObject compiler) doesn't understand ifdef, let
simply expect that SSL headers are available and unconditionally include
the "handleSslErrors". For this to work, we would have to associated a
compile definition with moc.

Since the QSslError header was already unconditionally included, defining
the slot is not a problem.

Error was:
 Object::connect: No such slot qSlicerWebWidget::handleSslErrors(QNetworkReply*, const QList<QSslError> & ) in /home/jchris/Projects/Slicer/Base/QTGUI/qSlicerWebWidget.cxx:99
 Object::connect:  (receiver name: 'qSlicerWebWidget')

From: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22782 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Fix build issue #0003522 due to nice() and getpid() calls.

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

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22783 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Remove 'python_install_chmod_library' external project install step

Since the transition to CMake'ified python, this extra step is not
required anymore because the installed file has the expected
permissions.

Because the timestamp of the library is not systematically modified, it
will avoid the systematic recompilation of all project linking against
python library and speed up the overall MacOSX developer experience.


Before the update:

[...]
-- Installing: /path/to/python-install/lib/python2.7/zipfile.py
Performing python_install_chmod_library step for 'python'
Performing python_customPython_configure step for 'python'
Completed 'python'
$ ls -als python-install/lib/
total 3688
   0 drwxr-xr-x    5 kitware  staff      170 Dec 17 16:00 .
   0 drwxr-xr-x    6 kitware  staff      204 Dec 17 16:00 ..
3688 -rwxr-xr-x    1 kitware  staff  1886288 Dec 17 16:00 libpython2.7.dylib
   0 drwxr-xr-x    5 kitware  staff      170 Dec 17 16:00 pkgconfig
   0 drwxr-xr-x  234 kitware  staff     7956 Dec 17 16:00 python2.7


After the update:

[...]
-- Installing: /path/to/python-install/lib/python2.7/zipfile.py
[ 18%] Performing python_customPython_configure step for 'python'
[ 18%] Completed 'python'
$ ls -als python-install/lib/
total 3688
   0 drwxr-xr-x    5 kitware  staff      170 Dec 17 16:02 .
   0 drwxr-xr-x    6 kitware  staff      204 Dec 17 16:02 ..
3688 -rwxr-xr-x    1 kitware  staff  1886288 Dec 17 16:02 libpython2.7.dylib
   0 drwxr-xr-x    5 kitware  staff      170 Dec 17 16:02 pkgconfig
   0 drwxr-xr-x  234 kitware  staff     7956 Dec 17 16:02 python2.7

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22784 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Add prototype LandmarkRegistration and CompareVolumes modules

These are still work-in-progress modules, but should be usable to
support interatcive registration.

See https://github.com/pieper/LandmarkRegistration

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