Add some data annotation to allow for data profiling

perf on kernel 3.10 can record data addresses. This diff
adds an option to write a perf-data-<pid>.map analogous to
perf-<pid>.map to allow us to interpret the results.

Reviewed By: @bertmaher

Differential Revision: D1272287
Add hacky destructor to UConverter to prevent infinite recursion

IntlUConverter is the native data for UConverter, and ~IntlUConverter
runs user callbacks that ultimately access the UConverter ObjectData,
which will rerun ~ObjectData and we go into a cycle. Run the callbacks
in UConverter::__destruct instead.

Breaks compat with PHP5, as UConverter is not supposed to have a
destructor defined. Not intended to be permanent.

The real fix is to have a better story with how native data objects are
destroyed. Mandating that they always get destroyed after their
associated ObjectData isn't going to work if we want to fully match PHP5.

Reviewed By: @ptarjan

Differential Revision: D1273255
Make getStaticVariables() and getClosure() more compatible with PHP5.

`getStaticVariables()` used to return array(name => php_code), now it
returns the actual variable values, which is what PHP5 does.
One difference is that PHP5 returns the correct defaults from the start,
we return NULLs until the function is called at least once. Making that
work seems to require a very non-trivial fix.

`getClosure()` behavior now matches PHP5. It always returns a Closure
instance.

Also removing that buggy j0nx with double initialization in `ReflectionFunction::getMethod`.
When `ReflectionClass::getMethods()` was called before `getMethod()`, `hphp_get_method_info` was never called.
The values that were set in `getMethod()` are identical to what the `ReflectionMethod` constructor sets anyway.

Reviewed By: @ptarjan

Differential Revision: D1255330
Prefix native systemlibs with /:systemlib

Now that they are in the repo, using the empty string can
cause problems: attempts to access illegal paths will try to load
these because File::TranslatePathKeepRelative returns "" for a
failure.

Reviewed By: @bertmaher

Differential Revision: D1275493
Fix order of key/val setting for IterNext helpers

The correct ordering is to set the value first, then the key. (if it
exists) After combing runtime/base/array-iterator.cpp, I found a few
instances where we had this flipped.

Reviewed By: @jdelong

Differential Revision: D1275430
Test runner shouldn't display progress bar unless stty supports erase

I usually run my shell from inside emacs and the uber-leet
progress bar is too cool for the emacs terminal (it doesn't understand
"return to beginning of line").

Reviewed By: @alexmalyshev

Differential Revision: D1276186
Support multiple parallel configs in server mode tests

test/run will now start up one server for each config required for the
specified tests. This allows us to run things like "test/run -s quick slow"
instead of breaking it up into two different invocations.

Reviewed By: @jdelong

Differential Revision: D1274473
Fix debug target in Makefile

Does anybody even use this? I have no idea how
it ever worked in the first place without sticking
-I in front of the include dir names.

Reviewed By: @jwatzman

Differential Revision: D1274662
Fix crash when trying to change staticness of a property

If we found that a property had been redeclared as static
after originally being declared non-static, we hunted through the
parent preClasses to find the original definition. But the original
definition might have been in a trait. Also, the prop itself knows
where it was originally defined, so just use that.

Reviewed By: @ottoni

Differential Revision: D1275832
Yell when returning anything from a void function

Even `Tany`, which we admitted before even though it was
clearly bogus (see `void_return2.php`).

This requires considerable www cleanup, diff TBD.

Reviewed By: @elgenie

Differential Revision: D1141436
Translator isn't a base class; replace raw pointer member

Replace a ProfData* member of Translator with a std::unique_ptr and
delete the virtual destructor (it has no derived classes anymore).

Reviewed By: @ottoni

Differential Revision: D1273136
Don't use hack features in a non-hack file

Even though trailing commas are the BEST FEATURE EVER,
we have to leave them out of test/run since it's an intentionally
non-hack file.

Differential Revision: D1277631