Add WordPress.com OAuth2 plugin

Summary:
This plugin provides an OAuth authentication provider to authenticate users using WordPress.com Connect.

This diff corresponds to the github pull request: https://github.com/facebook/libphutil/pull/36

Test Plan: No test plan, at the moment.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: Korvin, epriestley

Differential Revision: https://secure.phabricator.com/D9004
Minor, update map.
Merge branch 'master' into cyyun
Use the `ArcanistConfigurationDrivenLintEngine` as a linting engine.

Summary: Ref T2039. This diff is the equivalent to D9057, but for rPHU.

Test Plan: Ran `arc lint` and ensure it doesn't complain about the `.arclint` file.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: epriestley, Korvin

Maniphest Tasks: T2039

Differential Revision: https://secure.phabricator.com/D9063
Add phutil-library linter to libphutil

Summary: Ref T2039. See D9070. D9072 is similar.

Test Plan: Ran `arc lint`.

Reviewers: btrahan, joshuaspence

Reviewed By: joshuaspence

Subscribers: epriestley

Maniphest Tasks: T2039

Differential Revision: https://secure.phabricator.com/D9074
Attempt to automatically build XHPAST.

Summary: Fixes T4951. Whilst `xhpast` was originally intended to be an internal development tool, it is not unreasonable for `ArcanistXHPASTLinter` to be used externally. Currently, however, if the compiled version of `xhpast` is not up-to-date, we simply exit and ask the user to build XHPAST themselves. Instead, let's try to build XHPAST automatically.

Test Plan: Removed `./src/parser/xhpast/bin/xhpast` and ran `arc lint` over a PHP file. Verified that the `xhpast` binary was created during this process.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: epriestley, Korvin

Maniphest Tasks: T4951

Differential Revision: https://secure.phabricator.com/D9076
Change xdebug.max_nesting_level config after XDebug changes

Summary: Fixes T5027. XDebug has changed how it interprets `0`. See the task or inline for more discussion.

Test Plan:
  - @martin.lindhe confirmed this resolve issues locally.
  - Dug through XDebug to find a root cause for this behavior.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: martin.lindhe, epriestley

Maniphest Tasks: T5027

Differential Revision: https://secure.phabricator.com/D9075
Allow the InRequest key-value cache to have a simple key limit

Summary: Performance of the new graph cache is okay, but pulling data from APC is more expensive than I expected. I'm going to try to tune that by doing some in-request caching, since all requests normally examine the same bucket at first.

Test Plan: Added and executed unit tests.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Differential Revision: https://secure.phabricator.com/D9079
Merge branch 'master' into cyyun
Add an `selectDescendantsOfTypes` to the `AASTNode`.

Summary: This method generally seems to make sense (there already exists such a method in the `AASTNodeList` class). Additionally, such a method simplifies D9117 slightly.

Test Plan: Ran the unit tests in rARC, which generally rely on this class.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9134
Change double quotes to single quotes.

Summary: Ran `arc lint --apply-patches --everything` over rPHU, mainly to change double quotes to single quotes where appropriate. These changes also validate that the `ArcanistXHPASTLinter::LINT_DOUBLE_QUOTE` rule is working as expected.

Test Plan: `arc unit --everything` and eyeballed the diff.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9184
Use the `ArcanistChmodLinter`.

Summary: Apply the `ArcanistChmodLinter` from D9187.

Test Plan: Removed all other linters from the `.arclint` file and executed `arc lint --everything`. Confirmed that there were no issues raised.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9189
Rebuild map

Summary: arc liberate src

Test Plan: n/a

Reviewers: btrahan, epriestley

Reviewed By: epriestley

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9218
Throw when passing array_mergev() non-array items

Summary: See rP481a2954545e for an example of the kind of error this can catch.

Test Plan: Ran unit tests.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Differential Revision: https://secure.phabricator.com/D9213
Store daemon arguments in reference file.

Summary: Ref T4735. Store the arguments that were used to launch a daemon in the reference file. This will allow the daemon arguments to be echoed to the console for `./bin/phd status`.

Test Plan: See D9208.

Reviewers: #blessed_reviewers, epriestley

Reviewed By: #blessed_reviewers, epriestley

Subscribers: epriestley, Korvin

Maniphest Tasks: T4735

Differential Revision: https://secure.phabricator.com/D9207
Add `%LR` support to `csprintf`.

Summary: Allow `csprintf` to format an array of readable strings.

Test Plan:
I didn't create any test cases because there aren't any existing test cases for `csprintf`. Instead, I used the following script:

```lang=php
<?php

require_once __DIR__.'/scripts/__init_script__.php';

echo csprintf('%LR', array('foo', '--not', 'bar'))."\n";
echo csprintf('%LR', array('foo', '--not bar'))."\n";
```

The output was as follows:

```
foo --not bar
foo '--not bar'
```

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9229
Merge branch 'master' into cyyun