Suport OAuth refresh tokens and token expiry

Summary: Ref T2852. Some providers, including Asana, issue short-lived OAuth tokens and separate long-lived refresh tokens which may be redeemed for new short-lived access tokens later. Provide initial support.

Test Plan: See next diff.

Reviewers: btrahan

Reviewed By: btrahan

CC: aran

Maniphest Tasks: T2852

Differential Revision: https://secure.phabricator.com/D6275
Implement an "invisibles" syntax highlighting language

Summary: Repalces a range of non printable characters with symbols

Test Plan: View some pastes with invisible highlighting

Reviewers: epriestley

Reviewed By: epriestley

CC: aran, Korvin

Maniphest Tasks: T3322

Differential Revision: https://secure.phabricator.com/D6297
Submit AsanaFuture data with HTTPSFuture, not in the URI

Summary: Ref T2852. For POST/PUT, handing this data directly to the HTTPSFuture results in an encoding which the Asana side of things handles better (notably, decoding `+` as space), and is more reasonable in general.

Test Plan: Tasks don't show up in Asana as `"[Differential]+..."` after this change, and all the other API integrations continue to work properly.

Reviewers: btrahan, chad

Reviewed By: chad

CC: aran

Maniphest Tasks: T2852

Differential Revision: https://secure.phabricator.com/D6299
Support DELETE http method in libphutil

Summary: Ref T2852. Asana uses this for DELETEing stuff. This array was just to catch typos, I'm pretty sure (I think there was a `setMethod('PSOT')` somewhere once), and the method works correctly.

Test Plan: Deleted asana stuff via API.

Reviewers: btrahan, chad

Reviewed By: chad

CC: aran

Maniphest Tasks: T2852

Differential Revision: https://secure.phabricator.com/D6309
Add test cases which cover the trailing whitespace behavior of code blocks

Summary:
Code blocks should have all whitespace preserved identically, so that things like "lang=invisible" work as expected. Add test coverage around that.

Previously, the plain-text version of code blocks did not obey this rule. Make it obey the rule for consistency, and add/adjust test coverage.

Test Plan: Unit tests.

Reviewers: garoevans

Reviewed By: garoevans

CC: aran

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