new approach inspired by the back-end

generate a separate method to enforce scoping
and allow easy inference of partially defined type
build fix
meh eta expansion unrolling
wip
reverted typedFunction cleanup, it broke e.g. 6221 -- TODO

failing tests:
!! 1 - pos/t5545                                 [compilation failed]
!! 2 - pos/t6221.scala                           [compilation failed]

!! 1 - neg/t944.scala                            [output differs]
++ 1 - neg/t556.scala                            [updated check file]
!! 3 - neg/t6214.scala                           [output differs]
!! 4 - neg/t1181.scala                           [output differs]
!! 5 - neg/type-diagnostics.scala                [output differs]
++ 2 - neg/names-defaults-neg.scala              [updated check file]

!! 1 - run/virtpatmat_partial.scala              [compilation failed]
!! 2 - run/t6221                                 [compilation failed]
!! 3 - run/t5545.scala                           [output differs]
!! 4 - run/repl-colon-type.scala                 [output differs]