Fixed infinite loop that takes over the CPU during request handling

* Prevented the infinite loop in HTTP header parser
* Fixed invalid typecasts in GenericConnection
* Fixed typo in the comment
That's very interesting!

So far, I just ran two quick checks:

1) ```(echo -n "GET /meta" ; sleep 1 ; echo -e "\n\n" ; sleep 1) | telnet localhost 8080```

2) ```(echo -n "GET /meta" ; sleep 1) | telnet localhost 8080```

Without an early return, the server keeps running for both requests. With the second one keeping the thread waiting forever, I would assume.

With your early return, the first request goes through, while the second one terminates the server binary. It does so, even if I replace ```return;``` by ```break;```. Calls for further investigation.

I'll read further on ```read()``` (and ```recv()```) to understand the EOF scenario better. Hanging threads with blocking reads from already peer-closed sockets are certainly no good.

Ref.: http://www.quora.com/When-doing-a-blocking-read-from-a-POSIX-socket-does-return-value-0-definitively-indicate-that-the-socket-has-been-closed-by-peer