Track pending deletes in APC via ODS counter

Summary: Expose APC pending deletes via treadmill to ODS

Reviewed By: @bertmaher

Differential Revision: D1391797
Allow properties from traits to be returned when not in repo mode

Summary: Properties from traits are dropped when not in repo mode

Reviewed By: @ptarjan

Differential Revision: D1354616
Remove AI_ADDRCONFIG from debugger port binding

Summary: Using AI_ADDRCONFIG makes it difficult to bind server sockets
in mostly IPv6-only environments where it's still expected that loopback
(127.0.0.1) will still work.  getaddrinfo will fail to return 0.0.0.0 as
a valid address to bind to since there are no IPv4 addresses defined
other than 127.0.0.1

See: http://fedoraproject.org/wiki/Networking/NameResolution/ADDRCONFIG

Reviewed By: @ptarjan

Differential Revision: D1395810
Allow some easy and questionable printing for LowPtr classes in dbg

Reviewed By: @jdelong

Differential Revision: D1392954
Check surprise flags after I/O

Summary: Check surprise flags immediately after waiting for I/O and avoid
execution of any PHP code if the request timeout (or other error
condition) has occurred.

Reviewed By: @jdelong

Differential Revision: D1396843
Swallow exceptions thrown by raise_warning() error handler

Summary: Callbacks registered with asio are not supposed to throw PHP exceptions.
If they do, asio swallows them and reports a warning. The problem is
that the warning invokes error handler that can throw again. Let's
swallow these exceptions as well.

Reviewed By: @jdelong

Differential Revision: D1397053
Implemented xdebug_call_line

Summary: This diff implements the xdebug function xdebug_call_line.
If function g calls function f and function f calls xdebug_call_line,
the line where g calls f is returned.

Reviewed By: @fredemmott

Differential Revision: D1388259
designate "synthetic" class elements in "hh --show"

Summary: I've found it to be useful info
 * ::class is marked as ce_synthesized
 * DynamicYield is not, because we don't want overrides

Reviewed By: @jwatzman

Differential Revision: D1396749
remove normative "should" from <<override>> message

Summary: It's possible that the way to resolve the error is to remove
 the <<Override>> marking. "marked as" is more "neutral" than.

Reviewed By: @jwatzman

Differential Revision: D1396750
reflection cleanup

Summary: - remove wtf addition of ##isIterable##
 - match isIterateable implementation to PHP5 (http://3v4l.org/maasG)
 - added ## inherits / implements ## to ## ReflectionMethod ##
 - removed an unnecessary ## ReflectionClass ## instantiation from ## ReflectionClass::__toString ##
 - renamed ## _toStringHelper ## to ## toString ## and made it ## final ##
 - edit some copypasta in method doc strings

Reviewed By: @ptarjan

Differential Revision: D1396727
Make Map use a MixedArray for its buffer

Summary: This diff changes Map to use a MixedArray for its buffer instead of using
its own custom buffers. The intent is to clear the way for enabling fast
(usually O(1)) conversion between Maps and map-like arrays.

Making this work was a little trickier than it was to make Vectors use
arrays as buffers. Here is a summary of the significant changes:

 - Maps no longer define their own Elm struct, but instead use MixedArray's
   Elm struct.

 - The Map implementation has been refined to shrink its capacity under
   certain conditions. I noticed this was a problem when I looked at the
   Map::addAll(), and since I was ripping up and re-writing that part of
   the Map implementation anyway I decided to address this issue in this
   diff.

 - While Map logic still controls when growing, compacting, and shrinking
   are triggered, Maps now delegate to various MixedArray methods to
   actually perform grow, compaction, and shrink operations. Maps also
   delegate to MixedArray for findForRemove and eraseNoCompact.

 - A number of Map fields (m_used, m_cap, etc) were removed and instead
   we now just use the equivalent fields in the Map's MixedArray buffer.

 - Maps now keep track of whether there might be int-like string keys
   present. This was essential to make Map::toArray() efficient in most
   cases but still get behavior correct in the rare case where a Map
   contains int-like string keys.

 - While writing this diff I tripped over an issue where wordcpy() was
   going off the rails if you pass it a zero size, so I added asserts in
   various parts of the code to help avoid this pitfall.

 - There are more opportunities for code sharing between MixedArrays and
   Maps, but I've deferred a fair amount of that to keep this diff smaller
   and easier to review.

Reviewed By: @dariorussi

Differential Revision: D1383777
autoload_map: add line and file info to string for fatal errors ...

Summary: ... including a test case to illustrate hoistability-banned
 reorderings that can interact with the autoloader.

Reviewed By: @ptarjan

Differential Revision: D1396650
Disable flaky zend tests

Reviewed By: @bertmaher
Remove Translator::analyze()

Summary: I started by deleting Tracelet and then cleaned up anything that broke
as a result. I also moved RefDeps from tracelet.h to its own header since it's
still used and removed a few other things that are now dead.

Reviewed By: @edwinsmith

Differential Revision: D1372951