Simplify system and remove variable CTK_BASE_INCLUDE_DIRS

Reverts commit 6cc6996. By construction, the variables CTK_BASE_LIBRARIES
and CTK_LIBRARIES were never containing duplicates.

Additionally, the variable CTK_BASE_INCLUDE_DIRS has been removed. The list
of include directories associated with each targets is now set once
when CTKConfig.cmake is generated.

Finally, to avoid using this variable for the CTKQtTesting library, this
library is now considered as a "regular" one and a "target_libraries.cmake"
file has been added. That way, function ctkFunctionGet(Include|Lib)Dirs
can be used for CTKQtTesting.

The caveat of this approach is that additional includes passed to the
macro ctkMacroBuildLib won't be configured into CTKConfig.cmake.
Do not set unused CMake build function parameter INCLUDE_DIRECTORIES

Following previous commit, the INCLUDE_DIRECTORIES parameter
has no effect.
Fix ctkSimplePythonShell build error supporting optional dependencies

This commit fix the build error and simplify how optional dependencies
associated with ctkSimplePythonShell are specified.

Since the 'target_libraries.cmake' file doesn't support the specification
of optional dependency. We introduce the variable <targetname>_OPTIONAL_DEPENDENCIES
that has to be set before the generation of DGraph input or build options
validation.

This variable allows to specify optional dependencies that will be
considered by both ctkFunctionGetIncludeDirs and ctkFunctionGetTargetLibraries.
Fix export of CTKTesting include directories

By leveraging the build system infrastructure and associating a
"target_libraries.cmake" file with CTKTesting, this commit ensures
that the associated directory are automatically exported
in CTKConfig.cmake

To successfully achieve this, the following has been done:
 (1) addition of an empty "target_libraries.cmake"
 (2) fix to DGraph so that the topological path of a standalone vertex
is the vertex itself and not the list of all vertices topologically sorted.
Note that more work would be required to teach DGraph to detect invalid
labels.
 (3) teach ctkFunctionCollectTargetLibraryNames how to handle empty
list of target libraries.
Fix build of ctkQtTesting application and  CTKConfig include directory export.

This commit fixes the build of ctkQtTesting application. By ensuring that
the functions "ctkFunctionGet(Include|Lib)Dirs" can be used for CTKQtTesting,
it fixes the build system and makes the statement done in commit 0233954
true.

It leverages the mechanism allowing to specify optional dependencies
(introduced in 3facf6a2)
Merge branch 'simplify-build-system-and-remove-base-include-dirs'

* simplify-build-system-and-remove-base-include-dirs:
  Fix build of ctkQtTesting application and  CTKConfig include directory export.
  Fix export of CTKTesting include directories
  Fix ctkSimplePythonShell build error supporting optional dependencies
  Do not set unused CMake build function parameter INCLUDE_DIRECTORIES
  Simplify system and remove variable CTK_BASE_INCLUDE_DIRS