Efficiency of coverage check

Instead of checking fully elaborated definitions, make sure we only
check cases which the programmer has written explicitly - other cases
are ruled out by unification. Fixes #975

I had thought I had done this a while ago, but it turns out I didn't do
it properly! This should make many pathological coverage checking
examples significantly quicker.