ENH: Add TubeTK_BUILD_MODULES CMake build variable

Controls whether modules are built or not. This is used by Prometheus that
builds TubeTK in 2 times:
 * first TubeTK lib with no modules
 * then the modules are built by Slicer directly

Change-Id: I33b1c7fa69e71788618ad3f9fd7f99023df203fa
ENH: Pull Slicer files only if needed

* Create TubeTK_Slicer_SOURCE_DIR that is set to the path of:
** a) Slicer sources when Slicer_DIR is passed or when modules are built
      by Slicer itself (for Prometheus)
** b) Slicer downloaded in TubeTK-build/TubeTK-build/Slicer when TubeTK
      is built without Slicer.
* Don't build ExpertAutomatedRegistration, only the headers are used by
  TubeTK modules.
* Keep the same folder organization as Slicer. CLI modules such as
  MergeAdjacentImages don't need to know if ExpertAutomatedRegistration
  is located in Slicer or downloaded by TubeTK.
* Factorize svnGetSlicerCLI() macro

Change-Id: Ia1a37b2a7cacbf712715bf1c8d88a06dd95fa49c
BUG: Fix install rules

ITKFactoryRegistration should install its files in lib/TubeTK instead of
lib/ITKFactoryRegistration.
Base libs are not supposed to be aware of "Slicer"; Rename the macro.
ITK and JsonCpp libs where not packaged

Change-Id: I8b5cccc57c720c80a3713792db989f8ee53d5671
ENH: Update extension variables

Set variables to be compatible with recent Slicer.

Change-Id: I9ed985c84e531d427ce3e7b8b2a07e07b60d822a