ReflectionClass support for class requirements

Summary: ... patterned after getInterface(Name)s and getTrait(Name)s

Reviewed By: @jdelong

Differential Revision: D1443833
typechecker: exclude synthetic __construct from compat check

Summary: Having an interface support a constructor via 'require extends X'
 does not mean that all implementers of the interface must have the
 same compatible constructor signature. The code surrounding
 constructors is rife with some unnecessary complexity and due for a
 refactor.

Reviewed By: @jwatzman

Differential Revision: D1443530
Backtrace generation has been moved out of the execution context and into a new class, BackTrace

Summary: There are several diffs out that currently add arguments to the debugBacktrace function (D1405194, D1407595). With both the proposed diffs and the current arguments to debugBacktrace, the function will have around 10 optional arguments. To keep the code base readable it seems reasonable to create a class that handles the creation of backtraces. While there are a lot of lines of code in this diff, almost all changes are a direct copy of the old debugBacktrace function.

Reviewed By: @jdelong

Differential Revision: D1412812