Parser: don't delay buffer clearing
Parser: don't set _read() for body until it's needed (push() returns false)

This fixes a problem where _read() was firing before the parsing function exited, causing the wrong data to be pulled in from the socket stream.
Parser: remove redundant check
Parser: fix bug where _body isn't unset when body bytes left === chunk length
Parser: fix bug where entire chunk was being buffered instead of from current position onward