Add definitions for AsyncIterator and AsyncGenerator

Summary: Add hack definitions for AsyncIterator and AsyncGenerator.

Reviewed By: bill

Differential Revision: D1389287
namespace-qualify argument to --show

Summary: Requiring ## \Foo ## is a huge pain, because it must be
 single-quoted in bash. Also changes the help copy for ## --show ##
 to be slightly more accurate: there are no issues with people using it,
 just no scripts.

Reviewed By: julienv

Differential Revision: D1389637
Get rid of headers for region-hot-trace and region-whole-method

Summary: They define one method each, so just fold them into
region-selection.h, which is where the other region selectors are defined.

Reviewed By: smith

Differential Revision: D1390022
Awful bytecode pattern-matcher thing

Summary: I needed something to pattern-match on bytecodes in order to detect and
inline singleton patterns, so here it is.

Reviewed By: jdelong

Differential Revision: D1344595
Try to inline singleton pattern functions

Summary: We see a lot of code roughly of the form

  function getSingletonFoo() {
    static $instance = null;
    if ($instance === null) {
      // Do some stuff and set $instance.
    }
    return $instance;
  }

Let's optimistically assume that such patterns are in fact singleton
patterns (as opposed to, say, some means of inter-method communication
to avoid threading arguments) and try to inline these checks.  The first
time we hit each callsite, we'll side-exit to do the call, and
subsequent calls will simply return the value at $instance, assuming the
checks still pass.

We also introduce a TransFlags struct which we thread through BindJmp
requests and into the translation routines so that we turn the inlining
off in the stub.

Presently, this inlining strategy is restricted to non-resumable
functions with no arguments passed and which don't return refs.

Reviewed By: bertrand

Differential Revision: D1344602
Do not check surprise flags on async function suspend.

Summary: Once AwaitE suspends execution, locals of the current frame are
considered dead. If the surprise flag triggers C++ exception that
unwinds the frame, we incorrectly try to free them.

Let's not check surprise flag until this gets fixed.

Reviewed By: jdelong

Differential Revision: D1391872
Fix relaxation of specialized boxed types

Summary: The main problem exposed by the new test was that the assert in
TypeConstraint::setDesiredClass was too restrictive. While I was fixing that I
noticed that relaxType was losing specialized inner types so I fixed that too
and added a gtest case to catch it.

Reviewed By: ottoni

Differential Revision: D1389525
Fix a bug in evalPHPDebugger

Summary: evalPHPDebugger can be asked to print the results of evaluating php
before the initial frame has ever been entered.  In this case, fp is
null---most of the function was checking this, but a new part forgot to.

Reviewed By: aravind

Differential Revision: D1390724
Add interface to set hhi dir for unit tests

Summary: Nothing terrifically complicated. Just allow setting the ref cell.

Reviewed By: pad

Differential Revision: D1389742