Give unification an explicit expected/actual distinction.

Experimentation on #122. Surprisingly, it’s clear most of the time which is the “expected” type and which is the “actual” type, and the order was correct in most cases. The most helpful thing is to include the full context of unification when an error occurs, though it makes type error messages significantly longer even with deduplication.