Slightly tweak an error message in Defn.sml
Handle variables of different types within case-expressions and Defn.

The code calculating free variables over preterms needs to be aware
that the free variables of

  case x of
    (a,b) => a + b + c

are x and c. In other words, the variables to the left of the arrow
bind what’s to the right.

Also include a relevant test-case, and improve the output of the
src/tfl/src selftest.