Move mailparse to HNI

Summary: This pull request moves the functions in mailparse.idl.json to HNI.

Also, `ezmlm_hash` now calculates the hash it should calculate.

Part of #1480
Closes https://github.com/facebook/hhvm/pull/3505

Reviewed By: @ptarjan

Differential Revision: D1502587
Update and lock framework test dependencies

Summary: This updates the framework testing dependencies, and this locking of dependencies should be better than the previous way of specifying less than half of the exact versions in the composer.json.
Closes https://github.com/facebook/hhvm/pull/3411

Reviewed By: @ptarjan

Differential Revision: D1489052

Pulled By: @fredemmott
Adds a couple tests requested in my previous diff

Summary: Followup to D1496765, adds test cases related to overriding methods with different memoization attributes. These cases were requested by@fredemmott

Reviewed By: @jano

Differential Revision: D1502087
Introduce kVPackedKind for vector-like arrays

Summary: This diff introduces a new ArrayKind kVPackedKind which is vector-like
(with integer keys 0 thru n-1) and is able to gracefully downgrade into a
PackedArray.

Reviewed By: @elgenie

Differential Revision: D1483853
Parser support for "varray(..)"

Summary: This diff adds HHVM support for "varray(..)" literals in "<?hh" files, and
it removes hphp_varray().

Depends on D1483853

Reviewed By: @elgenie

Differential Revision: D1502673
Force hhi root to be set in master before workers fork

Summary: Make sure that the workers all get the same, preset hhi path,
computed by the master before they fork. This could manifest as a worker
trying to re-extract the hhi files to a preexisting location (since the
random seed is shared across all of them) and hitting an exception when
the directory already exists.

It's pretty weird that we didn't run into this immediately when I did
the hhi embedding -- AFAICT this has been wrong since day one. I think
what saved us is the logic that says "if the number of changes is lower
than N, do it all in the master", where N is about 10 -- so most of the
time this didn't matter. (And it looks like during init we do some other
stuff in the master too or something? In any event, this was hard to
trigger.)

Reviewed By: @elgenie

Differential Revision: D1501184
Print backtrace when worker dies

Summary: On an unhandled exception, we were printing the exception name
but not the backtrace. Do that too, so we have some hope of knowing what
went wrong.

Reviewed By: @elgenie

Differential Revision: D1501129
Makes <<__Memoize>> work with static methods

Summary: Next will be top level methods. The tests feel a little thin here, but I think the main memoization tests cover most of what needs to be tested so I just added tests to show that it works with a static method. Let me know what you think I'm missing

Reviewed By: @jano

Differential Revision: D1502068
Fix a crash when using sqliteCreateFunction

Summary: The segfault is reproduced by the test.
Without this fix, drupal 7 when configured to use sqlite is unusable.
The crash occurs for instance when clearing the cache.
Closes https://github.com/facebook/hhvm/pull/3512

Reviewed By: @ptarjan

Differential Revision: D1503431
check EAGAIN & EINTR in read

Summary: Closes https://github.com/facebook/hhvm/pull/3509

Reviewed By: @ptarjan

Differential Revision: D1503423
Don't apc_inc/dec on non-numerics

Summary: Closes https://github.com/facebook/hhvm/pull/3419

Reviewed By: @ptarjan

Differential Revision: D1488804
Fix json_encode UTF8 error

Summary: Removed the hack to not return false on utf8 errors
That hack was introduced due to getting utf8 errors on unexpected situations

Seems to be working now, so remove the hack.

Changed one test in slow to properly match php
Closes #3457

Reviewed By: @ptarjan

Differential Revision: D1497833

Pulled By: @fredemmott