fix redundant code

Delete the `testName` variable, which is no longer used.

Combine state skip tokens for the DEFAULT and IN_SOAR_PRODUCTION lexer
states.
Parse production flags and create Production node

Parse production flags, and add parsing/error/structure tests. Instead
of having a rule for production flags which generates a
`productionFlags` token, consolidate name, documentation, and flags
into a `Production` object that inherits from `SoarNode`.

Create getters and setters for all of the `Production` contents.

Unfortunately, JJTree does not allow specifying `NODE_CLASS` locally,
so the generated code declares the local node (`jjtThis`) twice. This
also requires that we cast `jjtThis` to a `Production` every time we
call one of the setter methods, since the generated code declares it
as type `SoarNode`. I have filed a feature request on JavaCC's bug
tracker: https://java.net/jira/browse/JAVACC-274.
added lots of notes to TODO.txt