Fix a tracing bug in hhbbc

Summary: Segfaulted if you have an unnamed local in a member instruction.

Reviewed By: @edwinsmith

Differential Revision: D1605906
Add a utility to hhbbc to increase trace level for specific functions

Summary: I've done this manually many times, so let's make it a feature.

Reviewed By: @markw65

Differential Revision: D1606347
Don't propagate states past noreturn functions or Awaits that throw

Summary: Outside of FPI regions this is pretty easy to do.  Inside of them, the
restrictions on bytecode for FPI regions make this easiest to do by not
eliminating the unreachable code---this means running the abstract interpreter
on it, but we don't want any types it infers to leak into successor blocks.
Handle this by adding a new 'unreachable' flag for states and setting up the
state merge rules to handle it appropriately.  When the optimizer sees
unreachable code, it tries to remove it only if it isn't in an FPI region.

Also, change the cases where this happens to push TBottom, and fix a few bugs
where subtypeOf was being used when we really meant something else.
(TBottom.strictSubtypeOf(TObj) is true, but that doesn't mean it has specific
information about an object.)  There are other cases where we'll do things like
push TTrue if a TBottom is being tested for is_int---these are all harmless
because the code is unreachable if you have a TBottom involved.

Reviewed By: @jano

Differential Revision: D1596487
Fix a bug in how __Memoize sets up FPI regions

Summary: In this case you could have the fpushOff pointing to a non-FPush.

Reviewed By: @jano

Differential Revision: D1614957
Remove MemoryManager::refreshStatsHelper

Summary: It's just a wrapper.  I think the original purpose was to prevent
inlining of refreshStatsImpl, but that's moved to .cpp now anyways, so getting
rid of it should just make this code (marginally) easier to follow.

Reviewed By: @jdelong

Differential Revision: D1612500
Add a few more very simple APC unit tests

Reviewed By: @edwinsmith

Differential Revision: D1594377
Remove APCTypedValue optimization in APCLocalArray

Summary: This doesn't buy anything anymore and it's one less variable for
differences with the new system.  (On its own merit it also would mean we don't
need to have APCTypedValue have the same layout as TypedValue.)

Reviewed By: @bertmaher

Differential Revision: D1606396
Don't throw ints when throwAllErrors is enabled

Summary: Throwing ints is not cool.  But enterVM also just catches them and
turns them into Exception anyway, so anything that was relying on it being an
int would be broken.

Reviewed By: @markw65

Differential Revision: D1611790