Improve HTMLUtils.findBlocks performance

For #9717.
Unfortunately, I couldn't come up with a more general way of doing this in TokenUtils.

For testing, you can take https://gist.github.com/MarcelGerber/5c11f1031af292044708, placing your cursor in the script tags and pressing `Ctrl-Space`.
@redmunds is not getting the line, is mainly `ctx.editor.getTokenAt()` which has to parse the entire line up to the given position every time, and essentially parsing the same content many times.

What we could do is, run `cm.getLineTokens(line)`, save the tokens in the ctx and make `moveNextToken` use those tokens until it gets to a new line, where it will call `cm.getLineTokens(line)`, save it and return the first one.

BTW, why are the TokenUtils function that require a ctx and not a class that can be created one with methods that will not require the ctx?