Compute type tooltips better for macro expansions

Macros often expand into forms where the subforms have
the same syntax location as the entire form, which means
a naive approach gives confusing type tooltips on macro
expressions.

Instead, only keep the latest (outermost) type tooltip
for a given expression.

We could instead compute whether a given piece of syntax
is a subform of another at a given location or not, but
that check is expensive and we don't want to do that on
every update of the type table.
Handle case-> types better for tooltips

The use of case-> can cause an expression to get
typechecked multiple times, so the tooltips should reflect
all of the passes.
Use the original syntax to guide tooltip shape
Add tests for TR's tooltip computation
Fix type tooltips for multiple values

This broke when I made the printing lazier using thunks.

Also use regexps for the tooltip tests.