Properly check if a prologue should be generated in profiling mode or not

Using profileSrcKey() with the SrcKey for the corresponding function
entry was incorrect.  Although prologues are associated with the same
SrcKey as their entries, profiling translations for the entries
trigger a retranslation but proflogues don't.

Reviewed By: @bertmaher

Differential Revision: D1150708
delete 'version' file in root

We have 3 places where I have to update the version when I build packages. Having 2 is better. It looks like most of the callsites already have the `k_HHVM_VERSION` constant already there, so using that makes sense. I had to delete one place in `util/process.cpp` but that only had 1 caller which I could migrate easily.

I also made the `--hphp --version` message more similar to `--version`. I hope no-one is parsing it...

Reviewed By: @scannell

Differential Revision: D1149797
start of INI revoluation

We have a bajillion runtime options. We should cut them into 3 categories:

* Apache or Nginx setting replacements
* Exact mirrors of php ini settings
* New things that we think should be configurable

This diff tackles the second category. I went through a bunch of the manual pages for ini settings and tried to find the same setting in our hdf. While I was doing that I figured out that exposing some of those to userland would be a security problem, so I introduced the PHP idea of where a setting can be set. The only place I limited it was the `ini_set` call for now, but we can build out more if we support per-dif `php.ini`.

Then while I was doing this, I did lots of stupid things like hooking the wrong variable up to the wrong setter and getter, so I made the compiler make the choice for me by overloading `Bind` a bunch.

So yeah, we got 3 things rolled into this diff (new ini settings, ini setting security, and ini type inference) but I think they jive well together and cutting them apart will be a bit painful.

Reviewed By: @fredemmott

Differential Revision: D1149351
Disable flaky zend test

Reviewed By: @bertmaher

Differential Revision: D1150988
Simplify region selector/pgo options, fix pgo for legacy/tracelet selectors

This diff separates the JitPGO and JitRegionSelector runtime options
and adds a JitPGORegionSelector option. JitPGO can now be toggled for the
legacy and tracelet region selectors, and the hottrace and hotblock region
selectors are the choices for JitPGORegionSelector. It also has the required
tweaks to the tracelet region selector to select appropriately-sized regions
for profiling (the legacy selector gets it for free since it starts with a
Tracelet from analyze).

Reviewed By: @ottoni

Differential Revision: D1139217
Removing const requirement for AsioExternalThreadEvent::serialize().

Reviewed By: @david89

Differential Revision: D1146278
Change Code Model to allow boolean properties to default to false if not specified.

The few instances of boolean properties in the Code Model are almost always false, so it makes it easier to serialize and construct a model if these can be omitted. Changed the class generators to treat null booleans as false. Also changed the serializer to omit false property values from the serialization. Fixed the serialization of object property and object method expressions to serialize property/method name as a string rather than a scalar values. Now also serialize the type annotation of parameter declarations.

Reviewed By: @shai-d

Differential Revision: D1115222
Make IndexedStringMap smaller

Modify FixedStringMap to point to the end of the hash table,
and store IndexedStringMap's vector immediately following it.

This adds almost no cost to FixedStringMap::find (and if there are
collisions, is break-even or better).

Reviewed By: @jdelong

Differential Revision: D1135420
Rename SplObjectStorage::$storage to $__storage

Users can set arbitrary properties on these objects. This is perfectly
fine in Zend:

  <?php

  $o1 = new stdClass();
  $store = new SplObjectStorage;
  $store->attach($o1);
  $store->storage = 'herpderp';

We still have a problem if someone chooses to set $store->__storage, but as double-underscore is a fairly common 'this is private' indicator, that should be fine. Could alternatively rename to __hhvmStorage if that's a concern - don't see how to get rid of the underlying issue though.

Reviewed By: @ptarjan

Differential Revision: D1149297
Fix compile warnings in simplexml on OS X

Fix printf warnings in simplexml due to mismatched flags

Reviewed By: @fredemmott

Differential Revision: D1150950
Deal with obj-to-obj comparisons throwing exceptions

Apparently they can throw.

Reviewed By: aravind

Differential Revision: D1151115
Add ini flag for zend extension support, fix ini_get_all() test

Read-only as a lot of stuff happens at request init. The current test fails in the open source build as we aren't building the zend compatibility.

.skipif skips if either the extension's not built, or support is disabled at runtime

Reviewed By: @ptarjan

Differential Revision: D1149472
Remove dests of jumps

This was shockingly easy.

Reviewed By: @edwinsmith

Differential Revision: D1151042
Convert ext/pcre to HNI

Convert ext/pcre to HNI

Closes #1637

Reviewed By: @alexmalyshev

Differential Revision: D1147569

Pulled By: @scannell
Update error message for missing libiberty

In Ubuntu 14.04, libiberty has been split out into its own package.
Merge pull request #1678 from tstarling/libiberty-error-message

Update error message for missing libiberty
Don't require an explicit framework class

Right now, we require an explicit class definition for all frameworks that will be run by the test runner. This is true even if the class is just a cookie cutter call to the Framework class default constructor.

Make this not be the case anymore. Only require an explicit class for a specific framework if default behavior needs to be overriden.

Reviewed By: @alexmalyshev

Differential Revision: D1151499
Proper implementation of subtypeOf, strictSubtypeOf and couldBe over class hierarchies

Make class hierarchies take part in subclass and could be relationships

Reviewed By: @jdelong

Differential Revision: D1146681
Don't return any RepoAuthTypes unless we're in WholeProgram mode

Bsimmers found a case where hphpc says something has
KindOfString (implying InitNull or String), but it could be
KindOfUninit.  In whole program mode, hphpc correctly finds out it
could be unset, but not in normal mode.  I didn't really try to dig in
to why, but let's just disable it unless we're in RepoAuthoritative
mode.

Reviewed By: @swtaarrs

Differential Revision: D1144005
Promote bases to array before possibly throwing in Emptyish cases

This is what zend does, and it also simplifies dealing with
the types that need to propagate across exception edges in HHBBC.  (It
may also give better types in non-exceptional code when catch blocks
can fall through.)  Also just seems like more sensible behavior.

Reviewed By: @swtaarrs

Differential Revision: D1149589