Fixes undefined function error.

At the current stable version of NodeJS, http.response.setHeaders doesn't
exist and is replaced with setHeader.
Fixes test cases.

Various test cases had wrong comparison operators and/or small bugs. This
commit patches all the failing test cases.
Refactors send_request internals to work primarily with streams, and
exposes Needle as a proper non-flowing streams2 stream.
Implements optimization: if no callback was requested, do not aggregate body data.

This is an important optimization: when dealing with large documents, streaming
is the only way to handle those. We do not want Needle to keep aggregating these
chunks of data if it's not needed, since the memory requirements can be huge.
Simplifies debug logging function.
Fixes bug in test cases.

The test cases weren't checking the situation where a callback
was never called. This refactors those test cases into async
test cases.
Ensures content-length is set to the correct value.
Fixes bug in Iconv mechanism.
Getting rid of incorrect comments.
Gets rid of `assert` dependency.
Improves debug() function to not emit an array if you have multiple arguments.
Splits up external parsers from Needle core.
Syntax, cleanup.
Moar cleanup.
Added examples.
More parsing specs.
Cleanup in compression spec.