add Symbol class

Symbol represents any terminal or nonterminal; it contains a list of
productions and the First and Follow functions as described in the
dragon book. Edit the tokenizer to output Token class (just a Symbol
plus a string) rather than the enums I was using before.