Subset construction

Alright, here's the pull request guys.

There were some problems with this merge though. Unfortunately, because those files were just copied over, the history got really weird and I had to do a forced merge, which basically means my changes bulldozed over yours Justin for `automata.py` and `scanner.py`. It will basically look like huge blocks of code have been added. Having said that, I think our changes were basically identical, but there might be some subtle changes we need to address.

Second, it looks like the new Hofcroft files didn't actually get pushed. At least, I couldn't find them anywhere. We should probably commit those after this request.
You did not see it because I was an idiot and typed "state" instead of "start". There is logically only one start state, so I renamed the variable to reflect this, and you will notice in the default variables, it is assigned an empty string rather than a list.