Cleanup the grammar
Cleanup the grammar

Summary:
* Make production names consistent with parse method and to some extent AST names. So the method to parse production `<foo>` is now `parse_<foo>`.

* Use strings for keyword tokens as we already do for operators and punctuators, e.g. `"struct"` instead of `tok_struct`.

* Rename "function type" to "return type" since it's not a function but a return type.

* Get rid of the annotated productions by merging them with whatever they are annotating. This makes the grammar closer to the actual code.

Reviewed By: iahs

Differential Revision: D38765482

fbshipit-source-id: 332ba02e086c5f4472ea2d2e5eadbcca55b45924

facebook/fbthrift,facebook/fbthrift,facebook/fbthrift,facebook/fbthrift,facebook/fbthrift,facebook/fbthrift,facebook/fbthrift,facebook/fbthrift,facebook/fbthrift