tweaked the signature for NFAs

added `merge`, renamed some other functions
added type arg for NFA.t, for tokens. supporting tests

reorganized some test code so verbosity can be picked from command line
added NFA.setFinals to allow merged NFAs to have specific set of final states