Blink IDL parser: fix fragile dependence on line number

The PLY lex-yacc library is fragile when one defines a derived parser
from a base parser, due to depending on line numbers for ordering grammar.
Thus inserting a blank line in the base parser file can break the derived
parser!
This can be hacked around by duplicating the starting symbol in the derived
parser, which this CL does.

In principle you should be able to simply specify the starting symbol and
only define it once, but this doesn't actually work. The parser generation
code is very complicated, and thus it's easier (and safer) to simply hack
around it.

This was revealed in a CL making lint fixes to the base parser, which
then broke the build and was reverted.

Original CL:
Issue 22411002: IDL parser: fix lint errors and PPAPI ExtAttr grammar (+ test)
https://codereview.chromium.org/22411002/

Reverting CL:
Issue 22681002: Revert 216379 "IDL parser: fix lint errors and PPAPI ExtAttr gra..."
https://codereview.chromium.org/22681002/

Review URL: https://chromiumcodereview.appspot.com/22647011

git-svn-id: svn://svn.chromium.org/blink/trunk@155857 bbb929c8-8fbe-4397-9dbb-9b2b20218538