sortof format slow tests

A poor man's formatter since I didn't like any of the other ones I found. The original C++ source sometimes put newlines and sometimes not.

Codemods:

    codemod '([;{}])([^\n])' '\1\n\2'
    codemod -m '\s*<\?php\s+' '<?php\n\n'
    codemod '\t' '  '

I hand-fixed all the failing tests
Finish ir.specification entries for remaining instructions

I was looking over the instruction table to try to understand
what may need to happen to make it easier for a memelim mark 2 to
track memory effects (on object properties and other memory
locations), and I made the mistake of documenting StProp and StPropNT
(currently unused).  This led to finishing the remaining missing
entries...
Revert "[hhvm] proc_open should inherit g_context->m_envs"

This reverts commit 0a03e2fdd8cfa1c7dd0a1f9b836443a6464d69b2.
Eliminate ArrayInit.set(litstr)

In runtime code, use StaticString for literals or String for computed
char strings.  In test code, I justed used String("literal") to keep
the conversion simpler.  I think tests are ultimately easier to maintain
without the StaticString treatment.
Fix AddNewElemC bugs in HHIR

emitAddNewElemC didn't properly implement the specified
behavior for this opcode.  It assumed topC(1) was always an non-static
array with refcount 1 or 0.  This changes to interp the case when it's
not an array, and make the helper support static arrays.  (If it
matters for perf, we should engineer the bytecode spec to require this
as well, since the point of this opcode is initializing array literals
that can't be done as static arrays.)  In practice I think this is
only working because it always comes after a NewArray with a capacity
hint != 1, which means it's a newly allocated non-static array.
Ignoring the capacity hint would've broken it.
Remove weird IncRef thing in emitBindL

The comment is correct that doing the IncRef first is
necessary in pseudo mains.  However, I can't see any disadvantage to
not doing it first outside of them---IncRef/DecRefNZ elision still
seems to kick in in all cases I can think of.
Remove emitInterpOneOrPunt

It just calls emitInterpOne now.
add FilesystemIterator

This was inserted as a class inbetween RecursiveArrayIterator and DirectoryIterator. Sadly our RecursiveArrayIterator implementaiton is crazy and calls into C++ which can't call back up to `parent::method()`. I'll fix RecursiveArrayIterator in another diff.
Make AsioExternalThreadEvent::abandon() not hit assertion error

Destructor of AsioExternalThreadEvent uses assert() to check whether the
state is legal. Introduction of abandon() mechanism makes it possible to
destroy the AsioExternalThreadEvent in the Waiting state and hit the
assertion error.

This diff solves the problem by introducing Abandoned state.
Do not suppress exceptions thrown by PHP transport

Currerntly, if TServiceRouterTransport::flush throws an exception,
this exception is swallowed non-chalantly by Thrift's extension layer.
This should not happen.
Minor tweak for better StateVector error messages

If you use StateVector<Block*,...> or similar on accident,
you get a bunch of junk.  Add a static_assert so there's at least a
reasonable error in there somewhere.
Remove hoistGuardToLoad

This doesn't happen, and if it did it would be incorrect,
since it assumes a getTaken() implies a side exit which is no longer
true.  We may bring back something similar to this for LdClsCns but
it'll be easy to do it at that point (and a bunch of the instructions
in here aren't used as guards/checks anymore).
Remove some linear searches; use a vector instead of a list for BlockList

Less malloc and less linear search.  Also renames sortCfg,
since @smith told me he didn't like that name very much.  This still
makes use of the postId() field on each Block, which maybe still has
us leaving some trash in the Block structure that should be on the
side.  (These functions can be changed to take indexes later instead
if we want to kill that.)
fixup environment inheritance

obsoletes D825704?  populate our env array from environ,
then overlay local changes that were made to m_envs.

I didn't make this conditional on CLI but could if that is desirable.

I didn't tackle the allocate-after-fork issue that @jdelong raised in D825704
Rename s/get// for id, src, dst, srcs, dsts, numSrcs, numDsts

Dropping the "get" prefix makes the code more readable.
Also srcReg(), dstReg().
Add support for .hhas files in systemlib

Will be needed for array_filter/array_map etc

This sets things up so that if we define a builtin in systemlib, we rename
the corresponding c++ builtin with the prefix __builtin_, so its still available
(in case the php builtin wants to delegate some edge cases, and to make
it easy to run comparisons between the php and c++ implementations).

Also did a little reorganization to get rid of Func::isPHPBuiltin,
and use an Attr to identify functions as builtins. C++ builtins can
still be identified by checking the Func::info() method. This is needed
to allow builtin methods defined in php (such as array_map) to lookup their
arguments in the correct context.
Use an enum for SimpleFunctionCall::m_type instead of an int

It already had an enum, but wasn't using it.
remove "get" from label, trace, block, hint, next, taken, extra

Makes the code less repetitive and easier to read
Pull DataType and related asserts/macros/inlines into separate header

Allows DataType to be referenced without having
to pull in the entire kitchen sink of hphp/runtime.

This will be used by the bootstrap process for creating
ext_hhvm, infotabs, constants, systemlib, and class_map.
Objectify and clean up bootstrap programs.

Refactor a lot of idl.h/idl.cpp to be more generic and
make them easier for other bootstrap apps to build on.

This is a precursor for building infotabs/class_map generators
in cpp to remove the need for PHP during bootstrapping.

I'll also be git mving this to hphp/tools/bootstrap
in a follow-up move-only commit.