Refactored a bit
Re-using NonTerminals (important for FirstSets)
Added roundtrip test for BNF (closes #26)