Refactored production of first sets so that each NonTerminal produces (and holds) its own first set