Fix http header parsing and add unit test

The Cohttp_posix_io.Unbuffered_IO module is used everywhere we want to talk HTTP but then hand the fd over to another process, without accidentally buffering any data that process expects.

The HTTP status line was always being read correctly but the headers were always garbled. The headers are often irrelevant, so this wasn't obvious, hence adding a unit test.