ENH: Add VTK 6 support 1/2

1) Support vtk6 to build system.
http://www.vtk.org/Wiki/VTK/Build_System_Migration
Give users a build option between vtk5 and vtk6.
Solve vtk library python wrapping for VTK 6
Use system zlib (this is a hack)
Use system png (this is a hack)

2) Update dependency projects in superbuild including VTK, CTK, OpenIGTLinkIF, MultiVolumeExplorer.

3) Remove deprecated Macro.
The following two macros were deprecated in VTK 5.0 that were still supported, but have now been eliminated:
vtkTypeRevisionMacro has been replaced with vtkTypeMacro; vtkCxxRevisionMacro has been removed.
http://www.visitusers.org/index.php?title=VTK_6.0_Upgrade

The following two macros were deprecated in VTK 6.0 if VTK_LEGACY_REMOVE is on:
VTK_LARGE_INTEGER and VTK_LARGE_FLOAT
https://github.com/Kitware/VTK/blob/9a0fbb8da1a1701dc1b44c71467b969b3302efad/Common/Core/vtkType.h#L158-159

vtkFloatingPointType is replaced with double.
http://review.source.kitware.com/#/t/1667/

vtkType deprecations
http://www.vtk.org/Wiki/VTK/VTK_6_Migration/vtkType_deprecations

4) Replace SetInput() with SetInputData() and SetInputConnection(), the same kind of functions include SetInput1(), SetInput2(), AddInput() and SetSource().
http://www.vtk.org/Wiki/VTK/VTK_6_Migration/Replacement_of_SetInput

5) Remove GetProducerPort() from vtkDataObject.
http://www.vtk.org/Wiki/VTK/VTK_6_Migration/Removal_of_GetProducerPort

6) Remove Execute
http://www.vtk.org/Wiki/VTK/VTK_6_Migration/Removal_of_Execute

7) Remove SetWholeExtent() from vtkDataObject
http://www.vtk.org/Wiki/VTK/VTK_6_Migration/Removal_of_SetWholeExtent

8) Remove Methods for Manipulating Update Extent
http://www.vtk.org/Wiki/VTK/VTK_6_Migration/Removal_of_Methods_for_Manipulating_Update_Extent

9) Change AllocateOutputData() in vtkImageAlgorithm.
http://www.vtk.org/Wiki/VTK/VTK_6_Migration/Change_to_AllocateOutputData

10) Remove CopyInformation and CopyTypeSpecificInformation from vtkDataObject and vtkImageData.
http://www.vtk.org/Wiki/VTK/VTK_6_Migration/Removal_of_CopyInformation

11) Remove GetPipelineInformation and GetExecutive from vtkDataObject.
http://www.vtk.org/Wiki/VTK/VTK_6_Migration/Removal_of_GetPipelineInformation

12) VTK6 requires #include <vtkVersion.h> to use the VTK_xxx_VERSION preprocessor directives.
http://vtk.org/Wiki/VTK/VTK6/Migration/WikiExamples#Improve

13) Remove Methods for Manipulating Update Extent.
http://www.vtk.org/Wiki/VTK/VTK_6_Migration/Removal_of_Methods_for_Manipulating_Update_Extent.
http://vtk.org/Wiki/VTK/VTK6/Migration/WikiExamples#Improve.

14) Change scalars manipulation functions
http://www.vtk.org/Wiki/VTK/VTK_6_Migration/Changes_to_Scalars_Manipulation_Functions.
http://vtk.org/Wiki/VTK/VTK6/Migration/WikiExamples#Improve.

15) Remove Pipeline Update Methods from vtkDataObject.
http://www.vtk.org/Wiki/VTK/VTK_6_Migration/Removal_of_Update

16) Remove Pipeline Update Methods from vtkDataObject.
http://www.vtk.org/Wiki/VTK/VTK_6_Migration/Removal_of_Update.

17) Refactor functions in vtkMRMLModelNode and sublcasses.

18) Refactor functions in vtkMRMLVolumeNode and its subclasses.
Use ImageDataPort instead of ImageData

Issue #3514

From Yuzheng Zhou <yuzheng.zhou@kitware.com>
ENH: Add VTK 6 support in Slicer 2/2

Issue #3514
COMP: Fix various build warnings
to be merged