Re #41; implement basic pipelining

This allows you to chain interactions together, optionally munging
parameters along the way. This should cover most of the use cases for
composing interactions.
Remove space to appease Ruby 1.9
Avoid clobbering existing constant
Merge branch 'master' into pipeline
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.
Make "pipe" a public method

I initially didn't want people creating a pipeline and then tacking
things on to it with "pipeline.pipe(..)". I'm no longer convinced that's
a bad thing.
Add rough documentation
Return nil from pipe

I don't want to leak all of the steps.
Splat args between the "run"s
Write better tests
Implement #run! on Pipeline
Wrap #run in a transaction
Only instance_eval if a block was given
Extract common functionality
Improve documentation
Return `self` from Pipeline#pipe

This makes it chainable, which is nice.

    pipeline.pipe(...).pipe(...)
Fix #71; add abstract numeric filter