Add OneMessageStream

To be used in tests, it creates a stream which emits one 'data' event
with a given content, optionally triggering an 'error' event if an
Error object is passed to it.
Pipe 'error' event from content to output stream

This way users can be notified if there was an error assembling the
content for the mail.
Proxy content streaming errors to build() callback

When trying to build the content for a message uding build(),
if the content stream triggers an error event it should be passed
to the callback to be appropriately handled.
The callback is called whenever the first of either an 'error'
or 'end' events are triggered by the content stream.
If the content stream is implemented correctly, 'error' events
(if any) will always be called before 'end' events.