Add `urisprintf()` for encoded printing of URIs

Summary:
Ref T1049. This is primarily to enable us to do a reasonable job of variable replacement in "Request URI" Harbormaster build steps. For example, the user will enter:

  http://jenkins.mycompany.com/?diff=${buildable.name}

...which we'll transform to:

  http://jenkins.mycompany.com/?diff=%s

...and then build correctly.

Test Plan: Unit tests.

Reviewers: btrahan, hach-que

Reviewed By: hach-que

CC: zeeg, aran

Maniphest Tasks: T1049

Differential Revision: https://secure.phabricator.com/D7538