Creates an NFA from a parsetree
Big changes. Most importantly added the feature of traversing the NFA with a given input string.

Note: Some changes may be remains from past attempts. I will attempt to clean the superfluous clode at a later date.