Support php://fd/%d type streams
AddNewElemC Array API

AddNewElemC is a new helper method for HphpArray that directly
implements the NewElemC opcode and avoids the need for a wrapper
when invoked from JIT compiled code.

The value is passed by value with no ref counting; semantically
the same as CVarRef or TypedValue*, but without the added indirection.
Its also worth noting that its semanticly the same as using VarNR for
the parameter type, but since we rely on simple structs being passed
in registers on x64, I wanted to avoid VarNR with its constructors, etc.
Need locking around addLineEntries

addLineEntries modifies a std::vector which another thread
could be reading. The reader has a lock, but the caller of
addLineEntries was explicitly dropping the lock right before
calling it. Since the lock is needed again, just hold it to
the end of the function.
need to pre-initialize liboniguruma

liboniguruma claims to initialize itself correctly, but
its init routing isnt thread safe (despite trying).

onig_init looks like:

  if (inited) return;
  pthread_mutex_init(...);
  pthread_mutex_lock(...);
  inited = true;
  // perform initialization
  pthread_mutex_unlock(...);

So
 - if a second thread comes along after inited is set
   to true, but before the initialization is complete, it will
   read from tables that are being initialized.
 - if a second thread comes along after the first one has called
   pthread_mutex_init, but before it has set inited, it will
   try to call pthread_mutex_init again, which is undefined
   behavior

We can avoid all the issues by calling onig_init() at startup time.
Remove dead code in HHIR
Fix a bug in Simplifier::simplifyCmp

When there was a non-const null and a const bool, the
simplifier would continuously flip the arguments and recurse
infinitely.  For some reason there was a check for const bools before
the check for null, although the optimizations we can do knowing the
rhs is null seem just as good as the optimizations knowing the rhs is
a const bool.  (In fact after a couple more recursive calls I think it
ends up there.)
Use folly/Likely.h to get LIKELY/UNLIKELY macros

Various headers from folly use the versions of these from
folly/Likely.h, so we might as well also so we can include those
headers.
Remove PropCache