Fix logic in selecting final returned states

We now always pick from a set of states with minimal levenshtein distance, we
select the final "column" of input with better logic, and we only choose from
states that began parsing at position 0, so we don't accidentally get "tails"
that have the same symbol type as the return type, but are in fact just
right-aligned sub-parses.

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>
Update dependencies to 1.1.1

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>
Precedence annotation for rules

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>