Fix printing for certain list types with a mu var

Closes PR 14552
Disallow non-productive PolyRow types

Closes PR 14554
Adjust TR error message for consistency

The non-productive type check in type parsing and in type
alias setup should produce the same failure messages.
Make tc-expr the same implementation as tc-expr/check.
Remove conditional tc-expr/check splits that no longer need to exist.
Remove tc-body, and 0 arg case in tc-body/check.
Remove tc/app/check.
Remove tc/lambda/check.
Improve filter simplification.

(T @ x) => (! S @ x) when their intersection is empty.
Rearrange how we look through filters in -and so this rule applies more.
Move tc-if merging results logic to tc-metafunctions for reuse.
Remove distinction between check and non check variant of check-subforms-unit.

Use new merge-tc-results as well.
This revealed some buggy tests as well which are also fixed.
Fix contract on tc-result.
update bitmap test for some small change somewhere that seems to have
affected mostly the curve in opening parentheses (and other small
things like that)
fix rendering of underscores
fixed error reporting code to see string
Fix error case for merge-tc-results
Refactor tc-send, delete trailing whitespace
Allow `send` to union of objects

Also fix TR `send` for multiple/any values as receiver

Now emits a real type error instead of crashing with
an internal match error.

Closes PR 14547
Handle union of different values for functions too

Closes PR 14557
fixed the ~e sensitive test