Fix the readBody member function properly

for example, with a netcat command like:
nc localhost 8080 < test
We might have more data than expected. We handle this case now
and we make sure not to notify more data than asked to the readBody
caller.