This is similar to what is already done in ITK and SimpleITK.
The new vtkTargetLinkLibrariesWithDynamicLookup.cmake file is slightly modified copy from ITK (things have been renamed from ITK to VTK). The explanation of what this patch tries to achieve is documented in this file.
A new argument is introduced, called OPTIONAL_PYTHON_LINK. When used, the module will be optionally be linked against libpython. In the module.cmake files, most vtkPython dependencies were moved to COMPILE_DEPENDS, so that libpython is not added to the target_link_libraries() call.
The vtkPython is explicitely linked against the python libraries, as this is a python executable.
Also, the find_package calls for the PythonLibs were made optional when possible.
This fixes the following bug: http://www.vtk.org/Bug/view.php?id=16068