Kill linking of variable environments

Apparently VarEnv's m_previous is not used for anything. Let's kill its
maintenance and avoid 2 native calls per Continuation
next()/send()/raise() calls.
Handle parameter reffiness in translateRegion

This diff stops the region translator from punting on
instructions that may be prepped by ref (FPass*) or Tracelets with
reffiness guards. It increased coverage and exposed a few more
bugs. The only significant one was that some Tracelets depend on type
prediction for their length, so I had to hook it into translateRegion
to avoid generating worse code (or punting).
Support interpOne in translateRegion

This was going to be easy, but then it wasn't. The existing
interpOne relied heavily on the outputs of NormalizedInstruction, and
those are only populated by code that we want to kill soon. It also
didn't properly deal with bytecodes that wrote to more than one local,
or more than one stack cell. So the bulk of this diff is rewriting
interpOne to not rely on the NI outputs, then it was simple to hook it
into the region translator. I also cleaned things up so we don't
attempt to translate instructions that have no hope of succeeding; we
just interp them on the first try now.
Pass known Func*s through in the region translator

Pretty straightforward, since the hard part of figuring out
when the Func* is known is still handled in Translator::analyze.
I can haz moar usage logging?

Add a bit more usage logging for the debugger, and ensure that there is a common field between clients and servers thats easy to search on, i.e., sandbox id.
Replicate debugger info tests in test/quick/debugger

Ongoing migration of tests to the new infrastructure. The old tests stay in place until we have another way to test the client API.
Add PHP function mapping to stacktrace profiler

Adds translation of addresses to PHP function names using the
map created for perf.
Replicate debugger stack tests in test/quick/debugger

Ongoing migration of tests to the new infrastructure. The old tests stay in place until we have another way to test the client API.
Use KindOfInvalid instead of KindOfTombstone

KindOfInvalid is -1, so IS_REFCOUNTED_TYPE() == false, which
will allow skipping a few tombstone checks in future array work.
But also, it avoids declaring a magic constant outside the
DataType enum, and sometimes gcc can generate better code for
comparisons with 0 (ie type<0) than it can for 0x62, the value
of KindOfTombstone.
Remove a not-yet-true assert

In some circumstances we create unreachable blocks,
making the assert invalid. Currently nothing depends on the
assert being true, so remove it for now.
Make unit.cpp not take forever to compile

The AtomicHashMap constructor seems to be causing
Unit::GetNamedEntity to take forever to compile in the opt build, so I
moved the initialization out of that function and marked it #pragma
GCC optimize ("O0") to prevent whatever crazy optimization is freaking
gcc out.
Add reference to extension object to class_map

Add IDL component:
{
  "extension": {
    "symbol": "s_foo_extension"
  }
}

extension.symbol is the C++ HPHP::Extension symbol for the
extension (if one exists and is exported).
CreateCont opcode cleanup - removing FillContLocals instruction

FillContLocals was used only when num of locals > kMaxInlineContLocals; it doesn't hurt performance to copy them always within hhir.
Fix PDO MySQL bug in getColumnMeta()

In trying to get the CakePHP Blog Tutorial to run on HHVM, a subtle bug was found where the table name was not being returned, and, instead, an numeric index was being used. The bug was in PDOMySqlStatement::getColumnMeta (pdo_mysql.cpp). Applying this fix, the flock/fwrite fix (D855470) and the Reflection::SetAccessible (D851647) fix makes the CakePHP tutorial run like a champ.
Move Continuation state check to ContCheck opcode

Add ContCheck opcode that moves away responsibility of checking
Continuation status from Cont{Next,Send,Raise} opcodes.

This check needs to run outside of try/catch in next()/send()/raise()
methods and moving it to a separate opcode lets us merge
Cont{Next,Send,Raise} with ContEnter.
fix type mismatch in asio declaration

- Fix declaration of type mismatch that shows up on other platforms
- Fix lint warnings re: 80 characters
fix potentially uninitialized warning on other platforms

- fixes compiler warning about variable that might not be initialized on other platforms
__assert_util is not defined on macosx

- use the HHVM assert_util implementation on OSX
fix type declaration build warning on other platforms

- fix type declaration mismatch (long vs. int64_t) on other platforms
Do not hold unnecessary reference to sent value

Continuaton::send()/raise() are holding reference to the sent value
while the next iteration is being executed. Do not hold this reference
and teleport values instead.