ENH: Build ParameterSerializer even if BUILD_SLICER_EXTENSION is on

Since ParameterSerializer isn't part of the slicer build, it should be
superbuild even if BUILD_SLICER_EXTENSION is on. This follows what Jsoncpp
does.

Change-Id: Iba7f03139c9f4769ce940a3e24fcbae6023be761
ENH: Add USE_SYSTEM_SlicerExecutionModel

Since Slicer already packs SlicerExecutionModel, one should be able to use
the system SlicerExecutionModel.

Change-Id: I42ed28e7890320d6ae914731a6852b3b6a4c2941
ENH: External_*.cmake projects

This follows the Slicer conventions and allows project building TubeTK
to know what it depends on more easily.
It also clarifies the code by separating each dependency in its own
file.
ENH: Add option to choose the modules build

Adding option the option TubeTK_BUILD_ALL_MODULES. This option allows the
user not to build any module of TubeTK (only the libraries are built).
Also, if TubeTK_BUILD_ALL_MODULE is OFF, for each module of TubeTK, the
option TubeTK_BUILD_* appears so the user can choose modules one by one.

Change-Id: Ib6bcda957cd6b6b8bffb1d3c2efe713aee6e06bb
ENH: Clean up CLIs and library exporting

This allows projects outside of TubeTK to easily build each of TubeTK's
applications or modules. It also improves linking against TubeTK's libraries.
ENH: Move TubeTKConfig.cmake to superbuild directory

Much like CTK, it is easier for other projects building TubeTK to look for
the TubeTKConfig.cmake in the superbuild directory instead of its inner build.
UseTubeTK.cmake and TubeTKTargets.cmake have been moved along as well.
ENH: Delete FindTubeTK.cmake

Find*.cmake should only be written to handle project's specific
configurations issues. Since TubeTK doesn't have any, the regular
find_package should be able to do its job without a FindTubeTK.cmake.
Squash with clean up clis and exporting

Change-Id: Ibf5656a5a4ddbfbb980869e30b6bda10e879cc4f
Squash with add external

Change-Id: Ia75450796ffbd82ebfa8c8833bbf7e862f0a3a7a