Support ansicon for ANSI support on Windows

Summary: This gives more color. See: https://github.com/adoxa/ansicon

Test Plan: run `arc unit` amongst others and see spiffy colors

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9560
Rebuild `xhpast.exe` with static linkage

Summary:
Fixes T5372.

This thing is like 2.5MB but surely we will never regret checking multi-megabyte binaries into the VCS.

Test Plan:
  - Observed static flags being used during build.
  - Ran `xhpast.exe` with some PHP piped into it.
  - Saw large binary size.

Reviewers: richardvanvelzen

Reviewed By: richardvanvelzen

Subscribers: epriestley

Maniphest Tasks: T5372

Differential Revision: https://secure.phabricator.com/D9581
Fix the width of `PhutilConsoleTable` if the header row is wider than the data rows.

Summary:
Currently, the width of the header text is not taken into consideration when drawing the table. The width of the header text must be accounted for as if it were an ordinary row. Specifically, the following error occurs otherwise:

```
PHP Warning:  str_repeat(): Second argument has to be greater than or equal to 0 in /home/joshua/workspace/github.com/phacility/libphutil/src/console/PhutilConsoleTable.php on line 211
```

Test Plan: Drew a table with a really wide header column. verified that no warnings were raised and that the table rendered correctly.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9583
Allow PhutilConsoleProgressBar to be quiet

Summary:
This allows you to use the progress bar even if you don't want it to output anything. This can simplify logic in other parts of your code.

  $progress = new PhutilConsoleProgressBar();
  $progress->setQuiet(true);
  // etc.

Test Plan: derpy

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9586
Add a method to `PhutilConsoleTable` to hide the header.

Summary: Add a `setShowHeader` method to `PhutilConsoleTable` so that the header row can be hidden.

Test Plan:
Constructed a headerless table.

```
+==========+==========+=====================+
|    12345 | alicoln  | abraham@lincoln.com |
| 99999999 | jbloggs  | joe@bloggs.com      |
+==========+==========+=====================+
```

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9596
Ignore colors and formatting when determining string length.

Summary:
When calculating the length of a string with `phutil_utf8_console_strlen`, escape codes shouldn't contribute any width to the string.

This change allows for the widths of a `PhutilConsoleTable` table to be determined correctly when using rows containing formatting and/or colors.

Test Plan:
**Before**
{F167511}

**After**
{F167512}

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9597
Modernize `.arclint` file.

Summary:
Update the `.arclint` file after D9576 and D9590.

Depends on D9576, D9590.

Test Plan: Eyeball it.

Reviewers: #blessed_reviewers, epriestley

Reviewed By: #blessed_reviewers, epriestley

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9592
Don't create directories as `0777` by default.

Summary: Currently, `Filesystem::createDirectory('...')` will create a directory with (rather open) `0777` permissions (regardless of the return value of `umask()`). In particular, the `.git/arc` directory (or similar directory for another VCS) will have `0777` permissions.

Test Plan: Removed the `.git/arc` directory and ran `arc lint`. Verified that the `.git/arc` directory had more restrictive permissions than `0777`.

Reviewers: #blessed_reviewers, epriestley

Reviewed By: #blessed_reviewers, epriestley

Subscribers: epriestley, Korvin

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