Implemented xdebug profiling/tracing enabling

Summary: This diff implements the hooks required to start profiling and tracing in
xdebug. Actually outputting the collected tracing/profiling data is not
yet implemented.

This diff is huge, I apologize for that. I didn't want to send out
another tracing/profiling diff that didn't include tests, and the
"be able to start profiling/tracing" goal turned out to require a
lot more than anticipated: this relies on D1433761, D1434395, D1437218,
and D1423763.

Both xdebug tracing and profiling can be started automatically via ini
settings or via get/post/cookie triggers. Starting and stopping tracing
be done programatically.

For profiling and tracing, the user can specify an output filename that can
be formatted using xdebug-specific format characters.
A big chunk of this diff implements this, but it's not complicated.

The profiler will also be used for collecting memory usage and start/stop
times for functions, so the profiler can be started/stopped by the
xdebug `collect_memory` and `collect_time` ini settings.

Ensuring that I could meet all of these needs is one of the reasons it was
hard to split this diff up. But if this needs to be split up, I understand.
The easiest thing to do would be to split the file name formatting into
a separate diff.

Reviewed By: @ptarjan

Differential Revision: D1438290