Get rid of the unneeded logic in lambda lift and symbols.
To make specialization happy Duplicators has to invalidate vparms on
Function nodes.
Pass symbols for parameters to MethodType.

Fix construction of the MethodType corresponding to a constructor
in Delambdafy. Instead of passing a symbol corresponding to local
val def for a parameter there was a symbol corresponding to type
of that val def being passed. An example might explain the
difference. Let's assume we have a method:

def m(x: Array[Int]): Int

then it's MethodType should look like this:

MethodType(List(<symbol of x>), IntTpe)

but instead we were creating the following type:

MethodType(List(<symbol of Array>), IntTpe)

which is very wrong. As a consequence, GenICode would see our
method to have the following signature:

def m(xs: Array[T]): Int

for undefined T.

I checked other places in Delambdafy for the same mistake and it seems
like everywhere else it's ok.
Fix condition for bridge method generation.

The condition to generate bridge method was:

neededParams contains true || neededReturn

which was interpreted as:

neededParams contains (true || neededReturn)

and not as:

  neededParams.contains(true) || neededReturn

which was author's intention.

It turns out that infix method calls are not always the best idea.