add rules to tag exit() as terminal (non-returning)

Summary: Added typechecker rules to tag exit() as non-returning and added a new exit_terminal_check.php test case.

Fixes #2916 (https://github.com/facebook/hhvm/issues/2916)

Reviewed By: @jwatzman

Differential Revision: D1381953
EZC: fix ref counts in _object_and_properties_init()

Summary: In _object_and_properties_init() a.k.a. object_init_ex(), the ObjectData was created and returned to userspace with a refcount of zero, despite being referred to by the RefData. Also, the RefData was inappropriately incref'd, making it unconditionally leak.

The two bugs cancelled out in a common case -- calling tvUnbox() on the RefData caused the ObjectData to be incref'd, leaving it with the correct refcount if you discount the leaked, unreachable RefData. Added a test case showing a less common case which previously failed.

Should fix https://bugzilla.wikimedia.org/show_bug.cgi?id=65796
Closes #2959

Reviewed By: @ptarjan

Differential Revision: D1387967

Pulled By: @sgolemon
Increase timeout for fetching OSS stuff in tests

Summary: Mediawiki is big, flakey at 2 minutes.

Reviewed By: @JoelMarcey

Differential Revision: D1393049
Implemented xdebug_memory_usage and xdebug_peak_memory_usage

Summary: This diff implements the xdebug functions xdebug_memory_usage and
xdebug_peak_memory_usage.

xdebug_memory_usage is to return the total amount of memory used
by the script. xdebug_peak_memory_usage is supposed to return
the maximum amount of memory used by the script since it was
started.

Note that the added test was taken directly from the xdebug source,
which is why there are lint errors. Should I fix them anyways?

Reviewed By: @sgolemon

Differential Revision: D1389052
Add class_elt field and fix require extends bug

Summary: Previously, the methods actually implemented by a trait were not distinguished
from the methods that a trait would necessarily have by virtue of a require
extends declaration. This caused a required method that lived in a superclass
to sometimes override an implementation in a subclass (!).

This diff puts an extra breadcrumb in class_elt so we can tell them apart,
and makes nonrequired (i.e. really, really implemented by the trait) methods
take precedence over merely required.

ran unit tests locally and they passed, and on contbuild are taking a long time, so

Reviewed By: @jwatzman

Differential Revision: D1371534
Update async functions doc in bytecode.specification

Summary: AsyncSuspend does not exist anymore. Describe behavior of the new
opcodes instead.

Reviewed By: @billf

Differential Revision: D1391937
Clownlist most Yii cache tests

Summary: These are unreliable - https://gist.github.com/fredemmott/cf169e952163a7effcbe

Reviewed By: @JoelMarcey

Differential Revision: D1393490
Clownlist silverstripe cache tests, re-record

Reviewed By: @JoelMarcey

Differential Revision: D1393634
Clownlist Laravel race-condition tests

Summary: sadpanda

I think I prefered the 'mutates fixed location on file system' ones :(

Found via https://gist.github.com/fredemmott/cf169e952163a7effcbe

Reviewed By: @JoelMarcey

Differential Revision: D1393668