Add PhutilOAuth1Future, for signing OAuth1 requests

Summary:
Ref T3687. JIRA uses OAuth1, not OAuth2, so we need to build a bit of infrastructure before we can auth against it. On the upside (I guess?) we can pick up Twitter too.

This implements an OAuth1Future which at least mostly works and can sign requests. It includes unit tests from the Twitter docs and an older version of the OAuth1 spec.

Test Plan: Ran unit tests.

Reviewers: btrahan

Reviewed By: btrahan

CC: aran

Maniphest Tasks: T3687

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