In my mind `.on('error'...)` could mean on `chunk.error`. Basically, `throw` in my mind is an exceptional unrecoverable error, while `chunk.setError` is a known recoverable (just render empty string) error. Adding `emit` error here, muddles that up.

We should keep back-compat and allow developers to use `chunk.setError` and expect chunk to immediatly flush, end, and the callback to be called with that error in it. 

The developer today doesn't have to add a try catch to do this safely while this PR changes that.