Provide a mechanism for reverisbly decoding arbitrary data for infix URIs
Summary:
See next diff. In Diffusion, we want to put arbitrary data into the URI and keep it as readable as possible.
Correct phutil_escape_uri()'s handling of slashes for suffix or query parameter use.
Add phutil_escape_uri_path_component() to correctly handle arbitary URI infixes (notably, branch names).
Test Plan: See next diff.
Reviewers: nh, vrana, btrahan
Reviewed By: btrahan
CC: aran, epriestley
Differential Revision: https://secure.phabricator.com/D1920