Add user/pass support to PhutilURI
Summary: I wasn't sure if we'd ever need these, but we do for repository
credential management (see D888). Also adds some unit tests.
Test Plan: Ran unit tests, build repository credential management.
Reviewers: jungejason, tuomaspelkonen, aran
Reviewed By: jungejason
CC: aran, epriestley, jungejason
Differential Revision: 889