Parse unusual editor URIs with no domain in the way users expect

Summary:
Fixes T6106. See that task for additional dicussion. Specific issue is that if a URI has no path, but does contain a "/" in the query string, `parse_url()` does something unexpected.

```
$ php -r "var_dump(parse_url('idea://open?a=/'));"
array(3) {
  ["scheme"]=>
  string(4) "idea"
  ["host"]=>
  string(7) "open?a="
  ["path"]=>
  string(1) "/"
```

Instead, adjust these URIs so we get a more expected result.

Test Plan: Added failing unit tests and made them pass.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T6106

Differential Revision: https://secure.phabricator.com/D10515
Add a `getEndLineNumber` method to the `AASTNode` class

Summary: Adds a `getEndLineNumber` method to the `AASTNode` class. This method supplements the `getLineNumber` method, providing the //ending// line number for a given node.  This feels a little awkward, but it makes D10535 a little nicer.

Test Plan: See D10535.

Reviewers: #blessed_reviewers, epriestley

Reviewed By: #blessed_reviewers, epriestley

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D10534
Update AWS API version

Summary: This updates the AWS API date to a newer version, which means AWS will expose more functionality in responses and requests to their REST API.

Test Plan: Encountered a problem where properties weren't available in the response during Drydock EC2 allocation because of this old version; updated this version and the properties started appearing.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D10545
Add a few methods to `AASTNode` and `AASTToken`

Summary: Add a few general purpose methods to the `AASTNode` and `AASTToken` class.

Test Plan: See D10558.

Reviewers: #blessed_reviewers, epriestley

Reviewed By: #blessed_reviewers, epriestley

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D10554
Minor linter fixes

Summary: Apply some linter autofixes.

Test Plan: `arc lint` and `arc unit`

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D10566
Update PHP compatibility information

Summary: Let's keep this relatively up-to-date.

Test Plan: N/A

Reviewers: #blessed_reviewers, epriestley

Reviewed By: #blessed_reviewers, epriestley

Subscribers: epriestley, Korvin

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