ENH: Improve grammar rules of the parser used by the wrappers.

The rules in vtkParse.y have been rewritten to allow a much greater
variety of C++ code to be parsed.  The preprocessor has also been
modified for improved compliance and efficiency.  Some of the larger
wrapper source files have been split.

Change-Id: Id1aa704edd5aeeb9551fb63214652f78820331e4
ENH: Improvements to vtkParse data structures.

Three major changes to the vtkParse data structs:

1) Macro lookup is now done via hash tables, instead of linear search.

2) Arguments have been renamed to Parameters where appropriate.
   This helps to make the code less confusing in some places.

3) A new StringCache struct allows string allocation and destruction
   to be tied to the data structures that use the strings.

Change-Id: I3e396d45a1d72b62e5a235b3fe57157b8800af19
ENH: Add static library vtkWrappingCore to share wrapper tool code.

The wrapper tools share a lot of source code, so it makes sense to
put that code into a library.  This commit also makes a change to
the command-line arguments for the wrapper tools: the output file
must be specified with a "-o" option.

Change-Id: I5155dd97c86ba98d91737f2691e8dfa92c28452d
BUG: Fix backwards-compatibility of generated wrapper code.

Comparison of the generated wrapper code to that of a few commits
ago turned up some differences.  Function pointers were not being
wrapped for the Java and Tcl wrappers, and several VTK_SOMETHING
constants were missing from the Python wrappers.  This commit fixes
these issues.  A diff between the new generated code and the old
generated code was used to verify that exactly the same methods
are wrapped as before.

Change-Id: Iae42286824ef6643b42eedfd427763a40be426d1
ENH: Allow wrapping tools to accept argument files.

Some compilers, including gcc and cl.exe, allow command-line
arguments to be given in a file.  On the command line, this
file is given as "@file" and may be intermixed with other
command-line arguments.  This patch adds support for @file
to the wrapper command-line tools.  The wrapper cmake macros
have been updated to use this option, in order to reduce the
length of the custom_command command lines for the wrapper tools.

Change-Id: Id24c5f662fdcc6ca437715ca6ee01b910ab60bc1
COMP: Missing legacy implementation for vtkMath::DoublePi().

When the DoublePi() and DoubleTwoPi() methods were marked as legacy,
their implementations were removed completely.  This caused a link
error when any code attempted to use these methods.

Change-Id: Ib1bf9a3ffeb71dd66dc098e915b0402fe795a4f9
vtkMath::*Quaternion*() expects quaternions in [w,x,y,z]

Precision is important as quaternions are sometimes in the form [x,y,z,w]

Change-Id: If6b0a4b46345378f9c84d3f611dc1bb20b95b5d7
Merge topic 'quaternions-doc' into master

716cd3b8 vtkMath::*Quaternion*() expects quaternions in [w,x,y,z]
Extend cube axis to support oriented bounding box

This changes allow user to specify arbitrary unit vetor to be used for the cube
axis which then allow the usage of an oriented bounding box definition.

Change-Id: Id1f8491966b64d72b23e1a8c7dc5df1f6e697958
Merge topic '13262-non-orthogonal-source-plugin' into master

8a4eaf0f Extend cube axis to support oriented bounding box
BUG: ModelBounds not checked for valid values

The SetModelBounds method was not checking to see if xMin <= xMax,
etc. If incorrect bounds were specified, the resulting image data
contained unexpected values.

This patch checks for valid model bounds and generates a vtkError if
the bounds are incorrect.

Also added a unit test for vtkSampleFunction. The unit test provides
over 90% code coverage.

Change-Id: I9d36d316611a5c82c4f7212d73f4b9a7f7ab7965
Fix vtk_module_dep_includes to scan dependencies correctly.

Although vtk_module_dep_includes() is expected to recursively scan the
dependencies to build the include dirs list, it didn't work as expected with the
macro was called repeatedly within the same scope for different modules.  The
problem was that the code that managed the recursion traversal
(_vtk_module_config_recurse) uses variables to avoid duplicate traversal and
that was resulting identifying incorrect duplicate visits when
vtk_module_dep_includes() was used more than once. Fixed that by ensuring that
vtk_module_dep_includes() scope the variable namespace using the modules name.

Change-Id: I23fb97a9dafaf43b7ebdf0f837ee130b3ded9165
Merge topic 'doublepi-legacy-impl' into master

4ff67f9c COMP: Missing legacy implementation for vtkMath::DoublePi().
Merge topic 'scatterplot-matrix-interaction' into pv-master

af9d962 Add ivar for number of transition frames
71e99ec The big chart should always use the top-corner
45a3e04 Only accept numeric columns, we can't process others
66f2cac Don't show the 2D chart when transitioning
095e5f2 Merge topic 'restore-ghost-generation-tests' into master
a981bfc Merge branch 'pv-master'
697aa03 Merge topic 'fix-freetype-comp-warnings' into master
416a8ab Silence unreferenced parameter warning.
504d04d Merge topic 'fix-vpic' into master
fc7d147 Merge topic 'expose-dep-include-dirs' into master
cd9994d Fix to use public form of the module variable
2d86fe9 Merge topic 'qvtk-windows-aero-refresh' into master
c1f7299 Merge topic 'refactor-module-export' into master
bba2a8d Merge topic 'expose-dep-include-dirs' into master
ef87ef1 Changes for non-standard modules to export info
3bca758 Refactored the module export logic
...
Merge branch 'pv-master'

* pv-master:
Merge topic 'fix_vtk_module_dep_includes' into master

09ddcebc Fix vtk_module_dep_includes to scan dependencies correctly.
Fix inner grid-line

Change-Id: I5699aa181017eed73c7196f6710f41060fe5d681
Merge topic '13262-non-orthogonal-source-plugin' into master

51a03675 Fix inner grid-line
Merge topic 'SampleFunctionBoundsCheck' into master

5dafde01 BUG: ModelBounds not checked for valid values
Fix 2D cube axes

Change-Id: I478e512262ff0928c1b9055e30c705d406fc5525