Catch errors from any stream in a pipeline

Added a function domainify to wrap a stream in its own domain and emit any
thrown errors on the stream. Also added an _pipeline method to the result of
.readable() so that .run() can access all the streams in the pipeline and
listen for their errors.
Added pipeline error handling to duplex
join: add error handling for from stream
domainify: ensure original _transform has its stream as context
join: include from stream's pipeline in _pipeline
reporter: add one reporter per entire pipeline to ensure interval is cleared

If you add a separate reporter to each pipeline segment, if an error is emitted
from a stream, only the segment with that stream will clear its reporter.
domainify: don't reinvent the wheel (i.e. domain.bind)
domainify: wrap _flush as well, clean up domain on stream end
0.8.2
Merge pull request #47 from Clever/catch-pipeline-errors

Pipeline errors - gotta catch 'em all