testing: Add proofs of why narrow to Unit is bad.
testing: Add proofs of why narrow to Unit is bad.

Fixing narrow to Unit broke earlier tests that relied on it. But in
case the testing mechanism changes, I'm putting in tests that will
break if the old behavior is enabled by accident.

The old behavior was to allow narrowing to Unit if two Function values
disagreed on the type. That turned out to be wrong, allowing code that
was unsound (`List[Function( => Integer)]` being equal to
`List[Function()]` for example).

jesserayadkins/lily,jesserayadkins/lily,FascinatedBox/lily,jesserayadkins/lily,FascinatedBox/lily,FascinatedBox/lily,FascinatedBox/lily