Allow PhutilTypeSpec to validate regular expressions

Summary: Adds a `regex` type to PhutilTypeSpec.

Test Plan: Unit tests; triggered the exception manually and read it to make sure it made sense.

Reviewers: btrahan

Reviewed By: btrahan

CC: aran

Differential Revision: https://secure.phabricator.com/D6855
Expand libphutil support for Twitter as an auth provider

Summary:
Ref T3687. Companion to the next diff, which adds the Phabricator half of this. Twitter is an easier OAuth1 proivder to implement and get a sanity check from, on the road to JIRA. Broadly:

  - Consumer secrets are now wrapped in a `PhutilOpaqueEnvelope` for consistency with OAuth2.
  - Twitter provider now returns full account info (username, profile image, etc), by making a call to the Twitter API.

Test Plan:
Registered using Twitter, got a registration form filled with information:

{F57054}

Reviewers: btrahan

Reviewed By: btrahan

CC: aran

Maniphest Tasks: T3687

Differential Revision: https://secure.phabricator.com/D6864
Enhance support for JIRA as an authentication adapter

Summary: Ref T3687. Actually pull account info in JIRA and expose it via the standard API.

Test Plan: See next revision.

Reviewers: btrahan

Reviewed By: btrahan

CC: aran

Maniphest Tasks: T3687

Differential Revision: https://secure.phabricator.com/D6867
Add `PhutilAuthUserAbortedException` to libphutil

Summary:
Ref T3687. When users hit "Deny" or "Cancel" on web-based auth workflows, provide a way for adapters to indicate this.

With the next diff, this improves the UX of cancelling (a bare exception becomes a dialog).

Test Plan: Cancelled out of JIRA oauth workflow, got nice dialog (after next change).

Reviewers: btrahan

Reviewed By: btrahan

CC: aran

Maniphest Tasks: T3687

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