Move isConstantString() from XHPAST linter to XHPAST node

Summary: D4744

Test Plan: This diff.

Reviewers: epriestley

Reviewed By: epriestley

CC: aran, Korvin

Differential Revision: https://secure.phabricator.com/D4747
Allow appending to safe HTML

Summary:
Sometimes I need to return safe HTML and I ended up calling `hsprintf('%s%s', $tag1, $tag2)`.
This looks better.

Test Plan: New unit test.

Reviewers: epriestley

Reviewed By: epriestley

CC: aran, Korvin

Differential Revision: https://secure.phabricator.com/D4765
Introduce PhutilNumber

Summary: So Javish!

Test Plan: New unit test.

Reviewers: epriestley

Reviewed By: epriestley

CC: aran, Korvin

Differential Revision: https://secure.phabricator.com/D4763
Update XHPAST rules for "\e" in string literals

Summary: After PHP 5.4.0, this means chr(27). We have a failing unit test for some versions of PHP.

Test Plan: Ran unit test.

Reviewers: btrahan, vrana

Reviewed By: btrahan

CC: aran

Differential Revision: https://secure.phabricator.com/D4739
Fix dynamic string usage as safe input

Test Plan:
  $ arc lint

Reviewers: epriestley

Reviewed By: epriestley

CC: aran, Korvin

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