VASM part 4: hoist vasm up to cgInst

Summary: Hoist the creation of the main assembler to cgInst; at this point,
each CodeGenerator cg* function must be fully converted to vasm or
left alone (fully x64-asm).

Reviewed By: @alexmalyshev

Differential Revision: D1460398
VASM part 5: decrefs, cgBinaryIntOp, cgBinaryDblOp, less m_rScratch

Summary: Converted the decref family of functions. Instead of emitting code
with an unpatched forward jump, and patching it later, the vasm version
creates the "done" block early, and passes it down to the various decref
helpers as the target to use if there's no decrement needed. (cleaner).

Converted cgCallNative so all CALL_OPCODE opcodes are converted.
vasm-ified cgBinaryIntOp and cgBinaryDblOp, and simplified them somewhat
by de-inlining special cases (noncommutative or overflow-detecting).
(these look more complicated now, but get simpler again in patches
higher in the stack).

Reviewed By: @alexmalyshev

Differential Revision: D1460408
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