Redo D5527
Summary:
If the PhutilURI parser tries parsing an invalid uri (or incorrectly parses
a uri), the whole input ends up in the path. The way that D5527 handled ensuring
that paths are absolute resulted in incorrect output from the __toString()
method.
PhutilURI still doesn't parse uris correctly (like javascript:alert()) - I
might go back later to make this RFC 3986 compliant, but a few things depend
on the broken behavior and need to be fixed.
Test Plan: arc unit --everything
Reviewers: epriestley, wez
Reviewed By: epriestley
CC: aran, Korvin
Differential Revision: https://secure.phabricator.com/D5566