Add support for private dependencies in VTK

A simple implementation of private dependencies, with some of the most
obvious private dependencies moved over. This should be used for all
dependencies that are not exposed in the public API of the classes in
the module.

The target_link_libraries call defaults to private due to the way CMake
implements the link logic. The private dependency logic can help reduce
link line and include directory length for private links where the
dependency's API is not exposed in the module. Also added code to ensure
include directories are not duplicated for modules in the build tree.

Change-Id: If4535338e8d5e9957d7bcce7d3ab0eadec21d2c4
Merge topic 'private-depends' into master

57901457 Add support for private dependencies in VTK