Use proxyRequest event instead of subst. writeHead

Makes the code less dependent on implementation details.
Add extra documentation (in code).

Removed ? from path's regexp, because
"http://cors-anywhere/" + "/domain.com/file" =
"http://cors-anywhere//domain.com/file" SHOULD be an invalid request.

"//domain.com/file" can be resolved to "http://domain.com/file", but
"/domain.com/file" should resolved to http://host/domain.com/file,
but since the host is unknown, the API should just fail.
Refactored; move URL parser to separate function
[WIP] Support internal redirects

TODO:
- Move proxyRequest elsewhere, and attach the request state to req
- Investigate the implications of calling req.emit('end');
  (It's called in order to trigger reverseProxy.end(), needed to start
  the redirect)
Bind proxyRequest event handler once per proxy

Optimization: Create onProxyResponse handler only once,
and bind it only once per HttpProxy instance
(opposed to binding it for every request)
Add X-CORS-Redirect-# header for debugging
Remove unused code
Add X-Final-URL
Add some tests (mainly interested in memleak test)

If you wish to check if the API works, launch demo.html,
set the global cors_api_url variable to your local instance,
enter an URL and press "GET" or "POST".
Fix memory leak
Version 0.1.7