Clean up unused imports.
Creating State interface that allows our machinery to refer generically to "State" - we provide the Single/Multi state implementation under the covers.
Cleaning up the "ALT" implementation, which was only meant as an intermediate refactor to prove out the concept without touching the main code.  Merging the concepts together with the original DFA implementation.
Documenting, clean up.
More javadoc and clean up.