ENH: Add TubeTK_USE_Slicer cmake build option

By setting TubeTK_USE_Slicer to ON (with a valid Slicer_DIR), it
automatically sets the ITK, VTK, Qt, CTK and SEM cmake variables (e.g.
TubeTK_USE_VTK, USE_SYSTEM_VTK).

Change-Id: Ib910b6c57feba4352697300f9f04c2ea46f6f5ba
ENH: Reorganize library dependencies

find_package(XYZ) was done too many times at the superbuild and inner build
level.
It is now done:
 - once at the superbuild level (CMake/Superbuild/CMake) only if
USE_SYSTEM_XYZ is TRUE
 - once at the inner level if TubeTK_USE_XYZ is TRUE

Change-Id: I0a0e540ced0b7bcb264d8debfa19ddc26e0c2e69
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
Merge topic 'improve-slicer-integration'

43094e4 ENH: Update extension variables
1834b4e BUG: Fix install rules
92d6fe3 ENH: Pull Slicer files only if needed
6b11671 ENH: Add TubeTK_BUILD_MODULES CMake build variable
0d27e33 ENH: Reorganize library dependencies
2257530 ENH: Add TubeTK_USE_Slicer cmake build option
ENH: Cleanup ObjectDocuments classes and add basic tests

Change-Id: Ia5a27b73f37d9f52e215ef784bb21373029034d5