Introduce async generators

Summary: Initial implementation of async generators.

Reviewed By: @billf

Differential Revision: D1382845
Fixed bug where xdebug_memory_usage could return a negative value when using jemalloc

Summary: This diff fixes an edge case in xdebug_memory_usage where a negative value could
be returned if jemalloc is being used. As explained in ext_std_options.cpp:831:

"Since we don't always alloc and dealloc a shared structure from the same
thread it is possible that this can go negative when we are tracking
jemalloc stats"

This should stop the xdebug/peak_memory_usage.php test from being flaky.

Reviewed By: @ptarjan

Differential Revision: D1397065