Allow use on streams; Option for case sensitive headers

I'm using this to parse a stream of response messages, so I've added Content-Length accounting to know when we reach the end of a non-chunked message.

The second commit adds a preserCase option to avoid lower casing header names.
You're absolutely right, I've updated it to call onBody. I've added a test for that case to my https://github.com/lrowe/subprocess-middleware-node package and it seems to work ok.