Right now, when you hit ^G, utomatch tries to ignore comments and strings, but its parsing is limited. It doesn't always work properly, as in bug 2220030. This patch allows utomatch to query the syntax highlighter to determine what is a comment or string.
Each highlighter needs context annotations in order to work for that language. I updated c.jsf, python.jsf, and sh.jsf with the context annotations. Eventually, the other languages could use context annotations, but it is not urgent. The others will still use -pound_comment et al.
In addition to the functional changes, I consolidated code from utomatch and tomatch_word in order to reduce a substantial amount of code duplication.
This patch is on top of patch 3459248.