DFATable rewrite

Rewrote DFATable including unit tests. Added comments to DFA to improve readability. Removed some unused import statements.