Remove PAM dependency code.
The libpam dependency was brought 3.5 years due to c-client.  As of today,
there's no need neither in HHVM or c-client to link against libpam.
HHVM itself does not depend on boost_regex.
Only third-party/folly depends on libboost_regex, but HHVM has a
dependency that causes a bogus linkage in the final binary.

Sync with Debian patch 09_remove_boost_regex_hhvm.patch from 2.4.1-1.
Disable bogus code for finding and linking against ncurses.
For some very old reason lost in the dawn of time, HHVM imported the
CMake file of Readline from KDE, which had an ncurses dependency. Remove it
from everywhere.

Sync with Debian patch 08_disable_libncurses.patch from 2.4.1-1.
Revert "Add Code Model classes to systemlib"

This reverts commit 29cee05ec8df2a970168fbd3f06301f3fa1f2d49.

Reviewed By: @sgolemon

Differential Revision: D1223208
Implement Collator::getSortKey

Mediawiki improvement - now that we have the intl ext, some tests aren't skipped

'New' failures in expect file were failing before this diff - this diff is a strict improvement.

Reviewed By: @sgolemon

Differential Revision: D1222416
Typo fix for normalizer_normalize

Reviewed By: @ptarjan

Differential Revision: D1222474
Add a NEWS for hhbbc

Reviewed By: @sgolemon

Differential Revision: D1224720
traits: correctly import constants from trait-implemented interfaces

... declared interfaces aren't quite good enough when traits
 join the party.

Reviewed By: @markw65

Differential Revision: D1213953
reflection: use actual, not declared interfaces ...

... which has the advantage of correctly reflecting the
 interfaces obtained from traits.

Reviewed By: @paroski

Differential Revision: D1213972
adding magic "Stringish" interface

It's quite useful to be able to typehint something that means
 "string-or-an-object-with-__toString". By popular demand, Stringish
 is that interface. Interesting choices in this implementation:
  - Stringish is added implicitly by defining __toString
  - unlike XHPChild, Stringish doesn't match int / double / array, even
    though those can be used in string contexts ... it doesn't seem
    particularly compelling

Reviewed By: @jdelong

Differential Revision: D1214064
Check the phar checksum if provided

Supports the current set of algorithms from MD5 through SHA512, using hash

Closes #1880
Closes #1933

Reviewed By: @fredemmott

Differential Revision: D1210782

Pulled By: @ptarjan
Fix guard relaxation bug with inner types

With pgo on, we use ir guard relaxation in "simple" mode. I forgot to
apply this to the inner constraint in addition to the outer constraint.

Reviewed By: @ptarjan

Differential Revision: D1224221
Don't allow unserialize to break property types in RepoAuthoritative mode

It's possible to crash the VM by unserializing strings that
give object properties types that we can't see statically.  Before
hhvm this was apparently handled by the smart pointer type rejecting
invalid unserialization, but now we just crash if it happens.  This is
still a work in progress, so it's behind a runtime option that's off
for now.  (We might need to pre-resolve persistent Class*'s from the
names in the RepoAuthType to make this performant.)

Reviewed By: @paroski

Differential Revision: D1156613
Add more detailed logging when we can't open the central repo

This adds more detail about why we failed open each candidate central
repo, logging to both stderr and the stacktrace file.

Reviewed By: @jdelong

Differential Revision: D1224717
Disable flaky zend test

Reviewed By: @bertmaher
Fix a locking bug in Index::lookup_this_available

Reviewed By: @dariorussi

Differential Revision: D1225901
Change shuffleArgs() on x64 to use rAsm instead of rCgGP

rAsm should not be used by general CG routines, while rCgGP is,
so rAsm should be safer. This also includes a micro-optimization
to do a 64-bit push of a DataType when possible, instead of
two 32-bit pushes.

Reviewed By: @sgolemon

Differential Revision: D1224119
Use/test PHPUnit 4.0.9

- change version the test runner uses to 4.0.9
 - change version tested to 4.0.9
 - re-rerecord .expect file (100%)

Reviewed By: @ptarjan

Differential Revision: D1225274
Fix mb_parse_str for empty input

Should be array(), currently null Breaks the Slim unit tests.

Reviewed By: @jdelong

Differential Revision: D1225411
range(), for making Range<T*> from arrays and std::vector

So people can more easily write functions which take contiguous values from memory.

Reviewed By: @tudor

Differential Revision: D1217809