Allow arbitrary currying of ftl::function.

Given a function, f(x,y,z),
    f(x)(y)(z) = f(x,y)(z) = f(x)(y,z) = f(x,y,z).