Added alphabet data structure support.

Scanner properly passes alphabets to automatons and lexical descriptions, and the data structures now store them as sets. Thompson's construction now actively constructs an alphabet as it is building the NFA as well.