Remove parentheses from lambdas

They aren't necessary for lambdas that only take one argument. I think
it looks better this way.

It's crazy that this is fine:

    f = -> x { .. }

But this is a syntax error (in Ruby 1.9):

    f = -> (x) { .. }
Raise if there's nothing in the pipeline
Extract lambda creation into helper method
Extract bind into helper method

It's not exactly a monad, but it's pretty close.