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
Adding Views/Infovis/Test/Cxx/CMakeLists.txt

The commit does a bunch of things

* Delete unused test TestGraphLayoutViewWithUnicode.cxx.
  This file was not being built. Somebody may have forgotten
  to delete it when they removed it from the CMakeLists.
* Adds a timeout on RegressionTest and enable check for
  TestQtlabelStrategy.cxx
* Adding Test dependencies for Views/Infovis/Test/Cxx.
* Adding Views/Infovis/Test/Cxx/CMakeLists.txt

Change-Id: I53702cf69032414844cacc39c27ddcec9228f4fe
Removing unnecessary dependencies.

Change-Id: I80c8f007e7222a7facc17f7c959848856251cce1
Merge branch 'master' into wrapper-parser-enhancements

Conflicts:
	Wrapping/CMakeLists.txt

Change-Id: I0df35b56ebc3e1d762736d5924e65ccf8d32cfca
netcdf 4.1.2 (reduced)

Extract upstream netcdf using the following shell code.

v=4.1.2 &&
sha1=ef42419b2afd99364e470813bc5b922a1a72a6de &&
sha1sum netcdf-$v.tar.gz |grep $sha1 &&
tar xvzf netcdf-$v.tar.gz &&
paths='
 COPYRIGHT
 README
 RELEASE_NOTES
 config.h.in
 cxx
 include
 libdispatch
 liblib
 libsrc
 libsrc4
' &&
excludes='
  --exclude=Makefile.*
' &&
mkdir netcdf-$v-reduced &&
(cd netcdf-$v && tar $excludes -c $paths) |
(cd netcdf-$v-reduced && tar x && chmod a-x */*.c */*.h)

Change-Id: Iddd737ab336b4d90e40024dabea3dd237eeec7bc
vtknetcdf: Prepare for new netcdf source import

Remove netcdf sources to make room for new import.  Add .gitattributes
to tell Git not to check whitespace in the third-party sources of
NetCDF.  Empty the "vtk_netcdf_mangle.h" symbol list.  Rename our
README.txt to README-VTK.txt to clarify its purpose.

Change-Id: Ic41d4576199a2957d20f2bac2c0d6da388eada0b
Merge branch 'netcdf-upstream' into vtknetcdf-cleanup

Change-Id: Id2f5e04f6416615bfe979763c8d6caad31870455
vtknetcdf: Update README-VTK instructions to update NetCDF

Add instructions to update from upstream NetCDF by using the
netcdf-upstream snapshot branch to merge the changes cleanly.

Change-Id: Icc80a46513d1b14798dfb6d3f8cffd3903d752ca
vtknetcdf: Put public interface configuration in dedicated header

Configure a "vtk_netcdf_config.h" header with the information needed in
the public interface headers.  Leave private (build-only) configuration
values in "config.h" and make sure its location comes first in the
include path.

Change-Id: Ia7084488e00703c319e95793121f1f2683af7595
vtknetcdf: Fix size_t v. long usage in C++ bindings

Port fix from commit 6223f230 (NetCDF cpp bindings have mixed long and
size_t usage, 2010-12-21) forward to the new netcdf import.

Change-Id: I1ec536c7d23f9bedbfadae8ce5892b8be59aa93d
vtknetcdf: Suppress warnings on GNU, Borland, and MSVC

Port warning suppression pragma changes from

 commit 2a9006cb (Silence some very common Borland compiler warnings, 2007-08-28)
 commit 6c9ad7e1 (Suppress 2 warnings on MSVC7.1 and eliminate the rest, 2007-08-30)
 commit 3d2799ce (Suppress warning generated by string constant in assertion, 2007-08-31)
 commit b427d72b (Eliminate warnings. Suppress warning about string constant in an assert, 2007-08-31)
 commit 4c746576 (Suppress warnings for multiple versions of the compiler, 2007-09-01)
 commit 2a9183c6 (Eliminate compiler warnings on the 64-bit Windows, 2008-04-25)
 commit 6a3e9cb8 (Cleanup many warnings reported by gcc, 2010-08-18)
 commit a0178524 (Backport compiler and warnings fixes from old netcdf, 2011-11-29)

forward to new netcdf import.

Change-Id: Ie6d278a5e2eb3005bed13ffdc99a41ce0bca749f
vtknetcdf: Add missing POSIX permission bits for Borland

Port fix from commit 1840b1d9 (Define POSIX permission bits when they
aren't otherwise, 2006-11-29) forward to new netcdf import.

Change-Id: Icb9ade4225f9114e36d49452b0f094dfcf9db18f
vtknetcdf: Add DLL export markup to C++ interface

Port dllexport markup changes from

 commit be660f46 (Try to fix MSVC8 link errors, 2007-08-28)
 commit 891bd2cb (Try again to get ncerr, ncopt working on Windows, 2007-08-28)
 commit 5c10a46e (Add dll exports for C++ version of netcdf, 2010-08-16)

forward to new netcdf import.

Change-Id: I3dd4894213adb60b38f87061172253802599b5dc
vtknetcdf: Define 'uint' for internal use by netcdf sources

Move the typedef out of the public "netcdf.h" header where it is not
needed and was defined only for DLLs on Windows.  Add it to the
private "ncx.h" header instead.  This makes the type available for
use by "putget.c" and "ncx.c".

Change-Id: Iedbc3e007db74aa39f429667685bb9c7e125e68a
vtknetcdf: Fix a few errors and warnings from MSVC

Avoid including headers not available under MSVC.  Use alternative
definitions for fixed-size integer types.  Do not declare a new variable
after a statement in C code.  Do not specify 'extern' linkage for
definition of NC4_inq_grpname_full.  Include sys/types.h and nc.h before
netcdf.h.

Port these fixes from

 commit e8981b99 (Include nc.h in v2c.i for case when sizeof(size_t)!=size(long), 2006-12-06)
 commit 26cb3a8c (Reorder includes to avoid MSVC problems, 2006-12-06)
 commit 30e8a553 (Try to placate MSVC again, this time Win64-Vista-MSVC8, 2007-09-01)
 commit 97a3321d (Add try compiles for stdint.h inttypes.h and stdbool.h, 2010-08-13)
 commit 6562eaae (Add a definition for SIZE_MAX if not defined, 2010-08-23)
 commit 9ddcd35c (Make it compile on VisStudio2008 express, 2011-11-29)

to new netcdf import.

Change-Id: Ia56f55e8e8487156604272214d6c8629eaf381e2
vtknetcdf: Restore fix for obscure netcdf4 bug in 64-bit build

Port fix from commit f9305772 (Fix obscure bug in 64 bit netcdf4,
2011-12-19) forward to new import.

Change-Id: Id903c0b3b28d5d18a430c7f17ad32a83aaddffed