Fixed a bug in first set generation.

The bug involved multiple definitions of the same left-side token. For
example, <exp> ::= ID  | ( <exp> )
<exp> ::=  <term> <exp-tail>
The second definition was rewriting the first.
Also, some housekeeping.