Devirtualize nvGetCell()

ArrayData::nvGetCell was only called from one place in vectortranslator.cpp
so hand-inline it there using nvGet(), which is already virtual.
Merge ObjectData and Instance together, part 2

When object support was first added to HHVM, a class named "Instance"
was introduced (deriving from ObjectData) to represent instances of user
defined classes. Since then, things have evolved and HPHPc and HPHPi have
been retired, and now there really is no needed to have ObjectData and
Instance be separate classes anymore.

This diff moves all of the functionality from the Instance class to the
ObjectData and removes the Instance class. In the process, I got rid of
a bunch of dead methods and fixed some indentation and other style issues.
Fix a DateTime leak

D860568 fixed a double free, but introduced a leak. If no
timezone is specified in the input string, timelib_fill_holes
would clone the one from m_time. Since we unconditionally cloned
*that* into m_tz, the clone from timelib_fill_holes was leaked.

The contract seems to be that m_time doesn't own it's tz_info, but
that it should be owned by a smart pointer somewhere. So we can tell
timelib_fill_holes *not* to clone the tz_info from its second parameter,
and at the same time optimize for the usual case where that timezone
is already the current timezone.
Retry fsockopen

It only fails very occasionally, so add some retrys

Facbook:

I logged into a contbuild machine where it had failed. 3 out of the 4
runs had actually succeeded. In the one run where it failed,
it was the ssl connection. So I tried running just that 1000 times, and
got no failures. Seems likely that the retries will help.
Cleanup lifetime management for translation units

For PhpFiles, there was a mixed management system, where references from
translated code were held until the code was made unreachable, while
references from interpreted code were held for the duration of the
current request. Under the new scheme, PhpFiles are always treadmilled.
They are owned by the FileRepository, and so need to be ref-counted
because the FileRepository can have the same PhpFile under multiple
paths. But we don't ref-count the *uses* of PhpFiles anymore.

Classes still need to be ref-counted, but as soon as their Unit
goes away, most of their internals can be freed. We just need to
hold onto them if derived classes are referencing them. Even in
that case, the next time we try to instantiate the derived class,
we can kill any that reference this Class.

There were also lots of holes where references were not dropped,
or owned data structures were not destroyed. eg a Class's methods
were not destroyed when the Class was destroyed; there were
several paths where an entry was erased from the file map, but the
corresponding PhpFile was not decRef'd - or worse, a null entry
was left in the map (something we had asserts to check for).

This tries to make the handling more consistent.
emitTLSLoad doesn't work on OSX with emulated TLS

- Provide a TLS solution that works on OSX with __emutls_*
Update folly
Modify PHP's ext/standard/math/tests/(pow|abs).phpt to be HHVM friendly

HHVM's arithmetic operators do not promote to double.
Use double-casted LONG_MIN/MAX to track this behavior.
Optimize InstanceOfD when rhs is unique interface

We would normally have to load the class and do
a whole bunch of other noise. Now we don't.
Move SessionModule class to ext_session's header

So that other extensions can register their own
Session Modules.
Mark CheckType non-CSEable

It's a control-flow instruction, and we don't support eliminating
control-flow yet.

This got exposed by the region/trace JIT.
relax guard change to allow for specialized guards

Unified code for relax and specialize guards and removed type propagation on relaxation
get HHVM to compile on OSX

This is a squash of https://github.com/danslo/hiphop-php/compare/osx-review
Fix native Exception::setPreviousChain() fatal

Fixes a fatal in native Exception, which is missing parentheses on this method call.
Allow AssertType of Cls

We need this with the region JIT.
Fix tools/reduce

The runtime option used by this script was renamed. Also, stop
retranslating as soon as JitGlobalTranslationLimit is reached.
ContSuspendK should break tracelets

It's a control-flow instruction.
Fix duplicate HTTP headers

When the same header is passed in, Apache/PHP will comma delimit
all header values for the returned values in apache_request_headers
and $_SERVER['HTTP_*'].
More OSX fixes

readelf -> gobjdump
folly exclusions
undef GNU_SOURCE
Implement +=, -=, *=, /= and %= outside of Variant