vtkModule: add CMake code for the new module system
The new module system is target-based rather than variable based. All information is passed between targets using target properties and leveraging CMake where possible such as for things like include directories and linking libraries. Where CMake doesn't handle things automatically, we store properties ourselves. This includes whether a module needs autoinit logic (and a function to handle adding the autoinit logic to a set of targets), which headers to wrap in various languages, etc.
Showing with 4696 additions and 6 deletions