Implementation of currying syntax: a function call f(_, _, x, y, _)
turns into fun(arg-1, arg-2, arg-3): f(arg-1, arg-2, x, y, arg-3) end.

If a function is curried repeatedly:

fun f(a, b, c): ... end
f(_, _, X)(_, Y)(Z)

It desugars into

fun f(a, b, c): ... end
fun(arg-3):
  fun(arg-1, arg-2):
    f(arg-1, arg-2, X)
  end(arg-3, Y)
end(X)

This will benefit enormously from inlining, once we have that...
Merge branch 'master' into currying