implement streaming responses ♫♫

One thing I'm unsure about here: is `byte[4096]` the optimal type for `HttpParser::buffer`? Perhaps another size or a dynamically growing buffer would be better.
Slightly weird to write `actual <= 0` rather than `actual == 0` when `actual` is unsigned. :) For a while I was wondering if a negative value might indicate an error rather than EOF.