Make tc-err also check return type.

This makes the test cases for failure in the typechecking unit tests run with `delay-errors` as `#t`. This will allow for testing of the return type code path which I have already found a couple of bugs in.
 
All but the last commit are in other PRs already in review.