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