Hoist some conditional type use into a header

Users of the smart containers shouldn't have to worry about this.

Reviewed By: @jdelong

Differential Revision: D1182630
Tracelet region selector tweaks

This diff adds an option to compare the RegionDescs generated by the
legacy and tracelet selectors. I then used it with test/{quick,slow} to find
and fix a number of differences. Most were related to guard relaxation,
including fairly major changes to how it uses AssertType ops to eliminate
guards when possible.

Reviewed By: @jdelong

Differential Revision: D1151684
Put back an assert in relaxType

I can't get this to trigger anymore.  So it look whatever reason
caused me to hit this went away with some of the other fixes.

Reviewed By: @swtaarrs

Differential Revision: D1172432
Make Boost minimum vesion 1.49
Run hhbbc repo tests whenever we run repo tests

Do it by running hhbbc on the repo and then running hhvm
twice (one for hphpc's repo, and one for hhbbc's version).

Reviewed By: @swtaarrs

Differential Revision: D1169972
Add <<__NativeData("Type")>> registry for over-allocating ObjectData

Allows storing arbitrary data in an ObjectData structure
from extension code.

Allocates extra space (as requested by Native::registerNativeDataInfo())
in the ObjectData sturcture (prior to the formal struct) and calls
Init, Clone, and Destroy functions (as registered).

Standard class implementation implement these via their empty constructor,
copy constructor, and destructor respectively.

For example:

ext_foo.php
  <?hh
  <<__NativeData("MyClass")>>
  class MyClass {
    /* blah blah blah */
  }

ext_foo.cpp
  struct MyClass : Native::NativeData {
   public:
    // Called by `$x = new MyClass;` or `$x = clone $MyClassInstance;`
    // to initialize the C++ object
    MyClass() {}
    // Called by `$x = clone $MyClassInstance`
    // to copy from an existing C++ object
    MyClass& operator=(const MyClass& src) {
      if (src.m_foo) {
        m_foo = newFoo(src.m_foo);
      }
      return *this;
    }
    // Called when object goes out of scope or request end
    ~MyClass() {
      if (m_foo) {
        delete m_foo;
      }
    }

    // etc...

   private:
    Foo *m_foo = nullptr;
  }

Further down in the Extension structure:
  void moduleInit() override {
    Native::registerNativeDataInfo<MyClass>(s_MyClass.get());
  }

Reviewed By: @jdelong

Differential Revision: D1171055
Raise warnings when return type annotations mismatch

This diff adds machinery so that we can raise warnings when the run time
type of the value returned does not match the return type annotation. For
now, doing return type checks is controlled by the "CheckReturnTypeHints"
runtime option which is false (disabled) by default.

Reviewed By: @jdelong

Differential Revision: D1180251
Kill the Util namespace in alloc.h

Removing Util namespace one header file at a time.

Reviewed By: @jdelong

Differential Revision: D1186403
Move embedded_data out of Util namespace

One header file at a time.

Reviewed By: @jdelong

Differential Revision: D1186439
Use movdqu instead of movdqa

The change to smart-allocate things instead of using the
request arena moved some things that previously were always 16-byte
aligned to be unaligned.  We could either address that, revert the
arena-removal, or maybe it's easier to stop worrying about this?

Reviewed By: @edwinsmith

Differential Revision: D1186447
Remove Util namespace from network.h

That's it

Reviewed By: @jdelong

Differential Revision: D1186596
Disable test/quick/hh_return_type.php

It's failing on master

Reviewed By: @jdelong

Differential Revision: D1186724
close the connection in admin server

Just like in http-request-handler, we must call onSendEnd after
sending our response in the admin-request-handler.

Closes #1899
Closes #1892

Reviewed By: @scannell

Differential Revision: D1186624

Pulled By: @ptarjan
Temporarily disable failing test

Reviewed By: @swtaarrs

Differential Revision: D1187064
replay ini files on each request

until I get ini logic refactored nicely this should make date.timezone at least works

Closes #1808

Reviewed By: @fredemmott

Differential Revision: D1183156
Use folly::dynamic::object and folly::dynamic::string exclusivly

`folly::dynamic` has lots of subtypes but we only really need hashtables and strings. Lets use those two for everything.

Reviewed By: @fredemmott

Differential Revision: D1181935
re-enable gz_decode tests

The HNI migraiton of these added the 3rd param so these tests don't spew all over anymore

Reviewed By: @scannell

Differential Revision: D1186898
Get rid of some mentions to tracebuilder

That's it.

Reviewed By: @swtaarrs

Differential Revision: D1185393
add more ini types

we have lots of runtime option types and if we want to hook those all up to ini, these helpers will be helpful

Reviewed By: @fredemmott

Differential Revision: D1186909
Fix infinite loop in simplexml with invalid offsets

Zend PHP would check if a write operation was being done when getting an offset.
It does this in case of this being something like $sxe->prop[123] = 'something'.

In case of HHVM, those kinds of calls are always handled by offsetSet.

This fixes 2 additional failing zend tests, and I have added another (more clear)
repro that makes the problem more obvious.

Closes #1896
Closes #1901

Reviewed By: @ptarjan

Differential Revision: D1186718

Pulled By: @scannell