unbroke type profiler

Fixed profiling implementation, moved soem of profiling ir opcode params into extra data

Differential Revision: D913367
Add function to get dependency stack on WaitableWaitHandle

Add a function to get the wait handle dependency stack to the native implementation of WaitableWaitHandle. This will be used by debuggers and profilers to get the stack of dependencies for generators driven from ASIO.

Differential Revision: D919486
Enable ctrl-c during eval

Enable the support for signal polling during eval in the debugger.

Differential Revision: D910661
Fix static closures *not* to do LSB in the JIT

:

Apparently this is intentional bug compatibility with zend.

Differential Revision: D919411
StringData allocator must be initialized

- For slow TLS ThreadLocalSingletons must be initialized

Differential Revision: D919977

Blame Revision: D907959
Fix a bug in StringData::escalate

Needed to delist and decref the shared variant.

Differential Revision: D920482
don't hide errors from pthread_setspecific

pthread_setspecific can fail per the man page, we should be
checking the return value

Differential Revision: D919949
folly::errnoStr is safer than Util::safe_strerror

- Eliminate Util::safe_strerror and use folly::errnoStr instead since the former is less safe as it doesn't preserve errno

Differential Revision: D920282
Don't always call values() for array fcalls

We should only call values() when we absolutely have to (magic calls where the array is not a vector)

Differential Revision: D920504

Blame Revision: D917994
Fix incorrect UseUndeclaredVariable warnings

There were two bugs:

 - Methods from Systemlib traits that were imported into user
   code were still marked as system methods, so we didnt run
   type inference on them, so the parameter wasn't annotated correctly;
 - If we couldn't determine whether a function argument was by reference
   or not, we could end up marking *that* as being the thing that set
   the parameter. If later we figured out which function was being called,
   we marked it as *not* by reference, and then it looked like it was being
   used without being set.

With this diff, we set the system/user flag correctly when cloning methods,
and always mark the "declaration" of a parameter as the parameter itself.

Differential Revision: D920269
give __get a chance when accessing properties

When __get is defined, we cannot get an invalid property. It simply
passes an empty string.
Merge branch 'master' of https://github.com/facebook/hiphop-php
Merge branch 'empty-prop'