Fix errors hanging responses

This fixes an issue where an error will keep the request from getting
fully read from the wire and can cause the socket to backup, preventing
responses. The callback-style is also delayed until the request is read
even on errors to prevent res.end from erroring.

fixes #69