Allow redirects to use same host
Properly parse urls that include protocol://
Disconnect path string to preserve after redirect

The subtransport path was relying on pointing to data owned by
the remote which meant that after a redirect, the updated path
was getting lost for future requests.  This updates the http
transport to strdup the path and maintain its own lifetime.

This also pulls responsibility for parsing the URL back into the
http transport and isolates the functions that parse and free that
connection data so that they can be reused between the initial
parsing and the redirect parsing.
Prevent HTTPS to HTTP redirect
Merge pull request #1871 from libgit2/cross-protocol-redirects-alt

Alternative fix for cross protocol redirects