Change the class_specifier rules to better match standard.

This should not create any functional changes, it is primarily for
readability.
Simplify the way that tilde is handled in the grammar.
Allow the "final" specifier in class definitions for C++11.

I could not find any way to do this without introducing shift-reduce
conflicts.  I turned on glr-parser to allow the parser to look ahead
as far as necessary in order to choose the correct rules.
Add function bodies "= delete" and "= default" for C++11.
Add parsing of enum classes for C++11.

To support enum classes, EnumInfo was made into a typedef of ClassInfo.
Add specifier "thread_local" for C++11 support.
Add IsExplicit to conversion operators for C++11 support.
Add literal operator "" for C++11 support.
Allow string prefixes and user-defined suffixes for C++11.

The code in vtkParsePreprocess.c does not understand prefixes or suffixes
on strings, so prefixed strings or strings with user defined suffixes may
not appear in preprocessor directives, except within the body of a #define.
Support raw string literals for C++11.
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.