updated DFA so isReachable is static; NFA can convert NFA to DFA;
NState now implements Comparator so to be sorted by Collections