Listener collects byte by byte

The Listener object now collects the request byte-by-byte instead of
line-by-line. This seems to better collect requests with body components
(ex. POST requests).

The RequestBuilder needed to be adjusted, since it turns out each line
of a request is terminated by \r\n, not just \n or \r by itself.

Mock requests in tests have been rewritten to more accurately reflect
HTTP protocol.