Added default values to automata constructor.

Did this so that a "blank" automata could be created and manually
populated by adding node objects. This is useful for making Thompson's
construction easier to follow.
Made start state singular.

Changed start state in automata to singular value (string) because it
doesn't make sense for it to be a list, there will always be only one
start state. Corrected corresponding method and references to that method.

Also included in this commit are improvements to the default values for
creating Automatas. Found a pitfall where default values are actually only
evaluated once, so if you modified them somehow, it carried across to all
instantiations of the object (!!!).
Initial implementation of Thompson's Construction.

Probably buggy/doesn't work at all. Need a suitable way to test, which
probably means completing NFA->DFA so that we can run actual strings
through this string. Also putting together some kind of node structure
visualizer would work, maybe an alternate library for that.
Merge branch 'master' of https://github.com/Zinfidel/cs554-project1