fixup
Require leading underscore for user-defined string suffix.

The C++11 standard says that any sequence of ID characters immediately
following any literal are a user-defined literal suffix and are in fact
part of the literal.  For strings, this is a big problem, because some
headers have constructs like "string"MACRO where a string and a macro
ID are adjacent.  Both clang and gcc have taken the step of requiring
that all suffixes start with an underscore, to make it so that fewer
existing headers break the standard.  I've decided to do the same.
Add alias declarations for C++11 support.

Template alias declarations are parsed but are not stored.
Add char16_t and char32_t types for C++11 support.
Add explicit template instantiation, with extern for C++11.
Add parsing of variadic templates for C++11 support.

This was done by adding opt_ellipsis where it was needed for C++11
(specifically after base class IDs and before declarator IDs), and
then adding opt_ellipsis in a whole bunch of other places in order
to eliminate shift/reduce errors in the parser generation.  Base
class specifiers that are parameter packs are ignored for now.
Add attribute specifiers for C++11, ignore them for now.

Attributes could be very useful, if they could be stored and used
by the wrappers.  For now, though, just parsing them is enough.
Add support for variadic macros for C++11 support.

This implementations strictly follows the C++11 standard, by
requiring at least one argument to be passed as the variadic
argument list.
Allow variadic macro argument to be empty (C++ extension).

According to C99 and C++11, if a macro has a variadic parameter, then
that parameter must be supplied with a list of one or more arguments.
However, both gcc and msvc both allow the variadic parameter to be
supplied with no arguments, so I've decided to allow the same here.

The macro expander will eat the comma immediately before the position
where the empty variadic argument list is inserted, as done by msvc.
This comma-eating behavior does not require a "##" concatenator like
gcc, it will eat the comma regardless of whether "##" is present.

I've also added named variadic arguments as supported by gcc.
Improve skimming of headers for preprocessor directives.

In the headers that are included by the headers that are being wrapped,
ensure that the preliminary phases of code translation are done properly
before preprocessor directives are identified:
1) convert all dos line endings to newlines,
2) convert any trigraphs (off unless PREPROC_TRIGRAPHS is defined),
3) remove any escaped newlines.
Parse raw strings in included headers for C++11.

If the preprocessor finds an #include directive and reads the file
just for preprocessing (i.e. not for parsing), then parse any raw
strings in the file.  This allows for raw strings to appear in the
code as long as they don't appear in any preprocessor directives.
Add new C++11 string and char tokens to preprocessor.

This covers the u, U, and u8 prefixes plus the old L prefix, and
also reads the optional user-defined suffix, but only if the suffix
begins with an underscore.  When changing this, I noticed that the
code in vtkParse.y for writing constant expressions was not adding
a space between identifiers and literals.
Use vtkParseString routines for all token identification.
Allow any unicode characters in IDs for C++11.

Some unicode characters are illegal in identifiers, but the wrapper's
parser is not meant to provide diagnostics, it's mean to wrap code that
is already known to compile.
Add named operator preprocessor tokens for C++11.
Add digraphs.