specializeTypes.specializedFunctionX for use by Late-Closure-Classes
overdue fix to future-spec test, req for Late-Closure-Classes
Late Anonymous-Closure Classes: GenBCode dehydrates them (+ TODO)

Transform a Function node
  (x_1,...,x_n) => body
of type
  FunctionN[T_1, .., T_N, R]
into a Block expression of the form:

    {
      def hoisted(x_1: T_1, ..., x_N: T_n): R = body

       ScalaRunTime.lccMethodDisguiser(
         hoisted(zeroes-for-params-above)
       ).asInstanceOf[AbstractFunctionN[T_1, .., T_N, R]]
    }

where `ScalaRunTime.lccMethodDisguiser()` denotes a synthetic, artifact
method symbol created in Definitions, that thus doesn't occur
in user programs.

In place of the above, GenBCode will emit
under `-closurify:delegating` the following:
  - an anonymous closure class, and
  - its instantiation.

That way, the compiler has less work to do during specialize,
explicitouter, erasure, and lambdalift, among others.

The resulting anon-closure-classes have smaller constant pools,
which significantly shrinks output size (good for mobile devices).
Further classfile-size reductions can be obtained using -neo:o1
(ie intra-method optimizations, which lower the instruction count).

TODO an assertion is tripped in GenBCode upon compiling
    test/files/continuations-run/t3223.scala
  with options
    -P:continuations:enable -Xpluginsdir build/quick/misc/scala-devel/plugins -Xplugin-require:continuations