L2P: Split out the matching logic.

This creates a new `next_match` function that returns the matching
phoneme string and the position of where to start the next match.
This simplifies the `read` function and makes it possible to call
`next_match` recursively to support right-context phoneme matches.