Avoid retrying unification problems constantly

If solved metavariables do nothing to a unification problem, there's no
point in trying it again - this can lead to a massive slowdown if
there's a lot of evaluation in the type. Partially addresses #1219.

Fixes #1716 on the way by tidying up type of updateProblems.