bison: update Bison 3.0.2's Java LALR skeleton to support %destructor

- generated a patch with our skeleton changes to make it easier
  to keep track of what we modified and port to future versions
  of skeletons.
bison/lalr1.java: make Location static and fix Location.toString() bug

- Make Location a static final class
- Location.toString() would crash if begin==null, which is the
  default state.
Groundwork for Bison parsing
parser.y: add the string representation of each token
gen-parser.sh: a script to invoke bison
parser/CParser.y: first pass of C grammar (with conflicts, etc)
CParser.y: fix S/R conflict in direct-abstract-declarator
CParser.y: fix S/R conflict in direct-abstract-declarator with left recursion

The previous fix relied on right recursion.
CParser.y: fix second S/R conflict in direct-abstract-declarator
CParser.y: add concatenation of string literals
CParser.y: introduce "any-identifier" in the trivial places.

Also add some GCC extensions.
parser: TYPENAME hack to for parser testing

Uppercase symbols are assumed to be types.
parser/Position: add equals(), hashCode() and toString()
c99/driver/Parser: new option "--debug" to enable parser tracing
CParser.y: change the formatting style for easier navigation

Change this:

rule
  : a b
  : c d
  ;

into this:

rule:
    a n
  | c d
  ;

While the first is arguably more readable, the second form allows us
to search for rule names much easier.
CParser.y: removed 'declaration'-related S/R conflicts
CParser.y: a cleaner way to remove 'declaration' S/R conflicts
CParser.y: attempt to fix <parameter-declaration>

There are two new S/R conflicts but they appear to do the right thing.
CParser.y: remove last reference to <declaration-specifiers>
BisonLexer: make all tokens retyrb their Code by default

Makes it easier while debugging the parser initially.