Updating code to use a ListBuffer to track all error states and then the Validator
selects the highest priority as the final result.  The Validator adds a pointer to the list
of other error states to Result.otherResults on the final Result.

Each Result is also tagged with it's path length within the automaton.

The highest priority is dictated by ErrorResult type and then path length.

Priority is determined using Result.compare & the Ordered trait.

Added test cases to verify priority dictated by ErrorResult.  Current tests
already verify priority by path length.