Add a `phutil_var_export` function

Summary: Add a `phutil_var_export` function which behaves similarly to `var_export(..., true)`, except that the output is nicer on the eyes.

Test Plan: Wrote and executed unit tests.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9923
Use `phutil_var_export` in `PhutilLibraryMapBuilder`

Summary: `phutil_var_export` produces slightly-more-readable output than `var_export`. Depends on D9923.

Test Plan: Regenerated `src/__phutil_library_map__.php`.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9924
Use `phutil_var_export` for `PhutilParserGenerator::formatAndIndent`

Summary: `phutil_var_export` produces more readable output than `var_export`. Depends on D9923.

Test Plan: Eye-balled the `PhutilTypeSpec` code.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9925
Minor fix for `PhutilParserGenerator`

Summary: `phutil_var_export` only accepts a single parameter. This bug was introduced in D9925.

Test Plan: Eye-ball it.

Reviewers: #blessed_reviewers, epriestley

Reviewed By: #blessed_reviewers, epriestley

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9929
Minor change to the library map formatting

Summary: Add a new line for clarity.

Test Plan: Inspected `src/__phutil_library_map.php`.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9932
Minor changes to `phutil_var_export`

Summary: Consolidate some regular expressions in `phutil_var_export`.

Test Plan: `arc unit`

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9934
Add a newline to `externals/includes/README`

Summary: For consistency, add a trailing newline to `externals/includes/README`.

Test Plan: N/A

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9940
Minor change to `src/__phutil_library_init__.php`

Summary: Use `__FUNCTION__` instead of a hardcoded function naming. According to [[http://php.net/manual/en/language.constants.predefined.php | the documentation]], `__FUNCTION__` was added in PHP 4.3.0.

Test Plan: N/A

Reviewers: #blessed_reviewers, epriestley

Reviewed By: #blessed_reviewers, epriestley

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9945
Reformat README as Remarkup

Summary: We have Remarkup, so why not use it?

Test Plan: {F177653}

Reviewers: #blessed_reviewers, epriestley

Reviewed By: #blessed_reviewers, epriestley

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9946
Remove textmate resources

Summary: I don't think that these are very useful anymore (although perhaps they are?)

Test Plan: N/A

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: chad, epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9943
Change the mode of the directory created by `PhutilKeyValueCacheDirectory`

Summary: Change the mode of the directory created by `PhutilKeyValueCacheDirectory` from `0777` to `0755`. In general, this directory //shouldn't// need `g+x` or `o+x` permissions.

Test Plan: Ran `diviner generate` and checked the permissions on the `.divinercache` directory.

Reviewers: #blessed_reviewers, epriestley

Reviewed By: #blessed_reviewers, epriestley

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9947
PHP compatibility fix

Summary: Replace `__DIR__` with `dirname(__FILE__)` because `__DIR__` is only available in PHP 5.3.0.

Test Plan: If this differential works, then it seems that everything is okay.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9957
Rename test scripts for consistency

Summary: Rename test scripts (removing the `test_` prefix) for consistency.

Test Plan: N/A

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9958
Minor changes to `phutiltestlib`

Summary: Tidy the `phutiltestlib` library files

Test Plan: N/A

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9959
Minor improvement to XHPASTSyntaxErrorException message

Summary: Trim trailing newline from exception message.

Test Plan:
**Before**
```
> ./scripts/phutil_symbols.php test.php
{
  "error" : "XHPAST Parse Error: syntax error, unexpected $end, expecting T_FUNCTION on line 4\n",
  "line"  : "4",
  "file"  : "\/home\/joshua\/workspace\/github.com\/phacility\/libphutil\/foo.php"
}
```

**After**
```
> ./scripts/phutil_symbols.php test.php
{
  "error" : "XHPAST Parse Error: syntax error, unexpected $end, expecting T_FUNCTION on line 4",
  "line"  : "4",
  "file"  : "\/home\/joshua\/workspace\/github.com\/phacility\/libphutil\/foo.php"
}
```

Reviewers: #blessed_reviewers, epriestley

Reviewed By: #blessed_reviewers, epriestley

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9961
Expose the file symbol map from PhutilLibraryMapBuilder

Summary:
Ref T5640. In D9864, collection of output from `phutil_symbols.php` (which includes symbols that things //use//) was replaced with processed output (which does not).

Allow callers (notably, `ArcanistPhutilLibraryLinter`) to access the raw have/need data.

Test Plan: See D9954.

Reviewers: joshuaspence

Reviewed By: joshuaspence

Subscribers: epriestley

Maniphest Tasks: T5640

Differential Revision: https://secure.phabricator.com/D9953
Adjust rule priorities to deal with links to object names correctly

Summary: Ref T5645. The object rules got juggled to deal with some other issues, so these rules currently fire too late for `[[ http://... | T25 ]]`, as the object rule hits `T25` first.

Test Plan: Got correct render out of `[[ http://... | T25 ]]`.

Reviewers: btrahan, joshuaspence

Reviewed By: joshuaspence

Subscribers: epriestley

Maniphest Tasks: T5645

Differential Revision: https://secure.phabricator.com/D9964
Minor change to `update_compat_info.php`

Summary: Replace `file_put_contents` with `Filesystem::writeFile`.

Test Plan: Ran `./scripts/update_compat_info.php`.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9960
Tidy paths for `require_once`

Summary: Use `..` instead of `dirname()`. I think that this is much neater.

Test Plan: Ran all of the affected scripts.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9969
Minor changes to the `./scripts/daemon/exec/exec_daemon.php` script

Summary: Just a few cosmetic changes.

Test Plan: Eye-ball it.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: epriestley, Korvin

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