test runner fixes

* Put `details` in the ending results output. Hopefully that appears on diffs.
* Exit early if we can't invoke the command (and abuse the `.diff` file).
* Error out if any output is on stderr.
* Fix the diff for regex tests (not that we have many).
* Capture stderr when running `hphp`
* Parse out FAILED: line during jenkins
A few step out fixes

Fix counted step outs, and add a test for all counted stepping commands.
Fix missing header

Some systems (my ARM SDK) seem to need this.
Reduce redundant spew when breaking on an unhandled exception. Quit cleanly.

Currently the debugger prints the line where an exception has been thrown, along with the type exception. Then it prints the source listing of the exception. Then it prints a serialization of the exception, which includes a full stack trace. Since the debugger has a command for printing stack traces, the latter bit information seems completely redundant when stopped in the command line client. This diff suppresses the stack trace in that case. It also suppresses redundant diagnostics that get generated during the debugger's attempt to find and print the source code in response to a list command. Finally, the quit command was too eager to let the client die after notifying the proxy, causing the proxy to get a pipe closed exception rather than the quit command, which often allowed the program to carry on running after the client has already quit. The quit command now waits for an acknowledgement from the proxy before shutting down.
Verifier: disable iterator checks, turn verifier on for systemlib @override-unit-failures

It's better to have some checks than none.  The only checks
failing in systemlib are iterator lifetime things, which it seems like
we're not about to fix.  Run the verifier on systemlib but only in
debug builds.
STD* streams should not be defined in server mode

- Zend doesn't define STDIN/STDERR/STDOUT in server mode, neither should
  we
move compiled tests files into another dir

I've been linking people to the README in this directory, but it is hard to see with all these files in here. What do people think about it moving a subdirectory? I don't love the name.
Free Func's properly

Func's are allocated using Util::low_malloc, so need to be
free'd with Util::low_free, rather than boost::checked_deleter.

In addition, there is some munging of the Func address going on,
so we really need to call Func::destroy instead.
Don't crash trying to print bytecode for unreachable switch targets

In some circumstances, the label associated with a branch
doesn't get set, and the corresponding branch target ends up pointing
to one byte before the start of the unit's bytecode.

In that case, we were crashing when trying to dump the bytecode.
Eliminate static noise from .h files

The codebase had several namespace-level static data definitions and function definitions. Using namespace-level "static" in a .h file is near-always a bad idea, as follows:

  - for simple types, static is implied. Example: "const int x = 42;" is the same as "static const int x = 42;"
  - for aggregate types, static linkage implies that a copy of the aggregate will appear in every compilation unit that includes the header.
  - for functions, static means the function will have a separate body generated in each compilation unit including the header.
  - in several places functions were defined 'static inline', which is just as bad. 'inline' is just a hint which means the function may end up having a body (and actually more due to 'static').

True, gnu's linker has means to remove duplicate definition, but that's not always guaranteed or possible (think e.g. static functions that define static data inside, ouch). So static is useless at best and pernicious at worst. We should never, ever use static at namespace level in headers. I will create a bootcamp task for a lint rule.

I expected the performance to be neutral after the change, but in fact there's a significant drop in instruction count and therefore a measurable reduction in CPU time: https://our.intern.facebook.com/intern/perflab/details.php?eq_id=431903
Add support for debuggers and continuations to out2expectf.py

Added something specific for the debugger to sanitize the relative paths of the debugger tests. Also added sanitization for continuation functions names.
Fix asm_test

SimpleLableTest used rbx, r10, r11, r15 without saving them,
causing lots of potential issues.

RandomJunk relied on white space at the end of a line - but our
master.emacs is setup to strip trailing space on save. I rewrote
the test to avoid having to remember to override every time.
fix argv in server mode

Match zend.
StackTraceProfiler utility class

StackTraceProfiler is a utility class for collecting call-stack profiles
at specific places in the code.  Typical use is to create a static
instance, then call prof.count() under the desired conditions.  You
can of course compose these to make value profilers.
fix bug36258

Now that contbuild summaries work, it is so much nicer.

I'm trying to use the property in a child. Either a keep the data around or make the parent's protected.
Improve verifier error message marginally (include unit, func)
Allow early initialization of classes if they don't have any [sp]init methods

We were being too conservative in determining whether to use
the static property cache when accessing a property from outside the
class.  In fact we'd never use it in that case, because we required
that the class not need initialization (and any class with static
properties needs initialization!).

We can relax this restriction to just enforce that the class not
define sinit or pinit methods -- scalar properties are fine.
Disable flaky zend test

I've seen it failing on master intermittently
Array::add(), set(), and setRef() don't need to return anything.

Removes a bit of code, and avoids a few uses of lvalBlackHole().
Implement most of class_alias

Throws the aliased class into a target cache slot for the new
name.  Handles errors when you try to re-alias a class, but doesn't
restrict a few other cases zend does:

  - If you implement an interface twice, zend complains (one of the
    alias tests checks this).  I tried turning it on, but we violate
    it in systemlib currently so I left it off.

  - class_alias_014.php does some namespace stuff I don't quite grok.
    (@ptarjan let me know what to do if it's easy).

  - inter_007.php uses class_alias, but is testing a warning that
    happens even with out it.  (We don't raise this warning.)

  - zend raises a warning if you try to class_alias a non-user-defined
    class; I left this out.