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: I7ebe24a148bd591ff98631b7fec941ec7675ff9c
ENH: Add USE_SYSTEM_SlicerExecutionModel

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

Change-Id: Ia54a3a099573b10eef19f6387b702357cbacc81d
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.

Change-Id: I240e12fc6c55ecc3a07f0b30a2675999417b0403
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: Ib77a204b9438781d0851cdb9cc9a0762e6acb86d
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.

Change-Id: I40d188cd98c44ed76d198a2c6db5f220e56ae0ed
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.

Change-Id: I3c3f0679b73c38fef9f969b47038ab5bb146d6bb
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.

Change-Id: I33313034e12d6f1716690bd4742ce65bd60ebbe7