Problem: It was not possible to detect the reason for a premature connection termination in http requests. This patch provides a new `err` argument to the 'close' event which can be inspected to differentiate between a timeout and a client actively terminating the connection. Also contains tests for this new behavior for http and https.
The change for #954 introduced a regression that would cause the url parser to fail on special chars found in the auth segment. Fix that, and also don't create invalid urls when format() is called on an object containing an auth member containing '@' characters or delimiters.
The debugger would give up after only 100ms but on my system this timeout isn't enough. The startup process is now modified to try 6 times every 50ms instead. Fixes #1010.