Improved disambiguation algorithm

Rather than simply disambiguating based on the previous token, an
ambiguous emitter has a list of potential emitters, which are refined
by a simple algorithm that eliminates potential emitters that are
found unambiguously elsewhere in the example.

Fixes #21