Replace isAlreadyObservedStateFromNFA with its oposite isDFAStateNewFromNFA
Implement dfa.markEnd()

Also improve related unitests - add
more testcases after sate 0 is marked as end
Implement tagged end in dfa

At the moment 'tag' is 'string',
later it will be changed to 'delegate'