Add chunking to ob_start

Summary: We were ignoring the `chunk_size` when provided to `ob_start`. This is an attempt
at an implementation of chunking built on our current output buffering infra.

Fixes #3820

Reviewed By: @paulbiss

Differential Revision: D1679049

Signature: t1:1679049:1416550346:fb3ce78f13b2e89deea926b1a581a263bf41a2fc
Allow null to password_hash()

Summary: PHP 5.6 allows `null` to be passed to `password_hash()`. Now we can pass it.

This is only a partial fix for #4294 since `password_hash()` also allows `int`s that can be
converted to `string` as well. Instead of making the parameter a `mixed`, we will wait for
`ParamCoerceMode` (PCM) to land, which should take care of that automatically for us.

Reviewed By: @paulbiss

Differential Revision: D1696229

Signature: t1:1696229:1416537939:b777eeda6f18173c356b950b48eb06cb0e31a7ed
Don't ignore Eval.JitAHotSize

Summary: In non-RepoAuthoritative mode, we ignored Eval.JitAHotSize, and
forced it to zero.

This makes it default to zero, while allowing it to be explicitly set.

D1699494 fixes internal configs to preserve the existing behavior.

Reviewed By: @edwinsmith

Differential Revision: D1699534

Signature: t1:1699534:1416750596:85d5177e29e7a21d45577e26a7307a324e8b2cd3
A few ir.spec tweaks to be more up to date

Summary: It still talked about Traces, and said we can't handle loops, and some
other small things.

Reviewed By: @edwinsmith

Differential Revision: D1686957

Signature: t1:1686957:1416326785:84b6143a9580d82fefbbf97e557d32a1a5e8baff
Only escape spaces in paths for find

Summary: We use `*` wildcards in an include and that doesn't go well if we are
passing the paths as strings to find.

Reviewed By: @avikchaudhuri

Differential Revision: D1697791

Signature: t1:1697791:1416600893:f76659575bc23cb6dee8f20ac2f6b1fdcb5a8cb9
Share variable environment in eval'd assert

Summary: Use a `RuntimeOption` to allow the possibility of sharing the variable environment
with an eval-style `assert()`

Fixes #2279

Reviewed By: @paroski

Differential Revision: D1679533

Signature: t1:1679533:1416263742:7b53e7384f06e59537600d3c6e819256dc7589c2
Introduce util to restart current process

Summary: This util is useful if the server ever detects that it needs to restart.

Reviewed By: @avikchaudhuri

Differential Revision: D1700121

Signature: t1:1700121:1416831012:c244641218820fc1ee334ebb14432151372e5326
Bypass slab allocator needs to happen in smartMallocSize

Summary: In dbg builds, routing to smartAllocSizeBig inside slabAlloc causes us
to wrap the object in multiple layers of debug headers, which aren't untangled
correctly by smartFreeSize.

Reviewed By: @mclarkelauer, @edwinsmith

Differential Revision: D1695774

Signature: t1:1695774:1416615918:6528f4a17bc14850eb2920dec36edd13bfa4a551
Fix build when using system installed lz4 library instead of third-party

Summary: Without this patch, the build fails with the following error:

```
+ /usr/bin/ocamlopt.opt heap/hh_shared.o utils/realpath.o inotify/inotify_stubs.o utils/nproc.o hhi/hhi_elf.o utils/get_build_id.gen.o utils/get_build_id.o -cclib -lelf -cclib -lpthread -cclib -L/usr/lib/x86_64-linux-gnu -cclib -L/usr/lib/x86_64-linux-gnu unix.cmxa str.cmxa avl/monoidAvl.cmx utils/hh_json.cmx utils/ident.cmx utils/sys_utils.cmx utils/utils.cmx utils/relative_path.cmx utils/pos.cmx deps/fileInfo.cmx deps/typing_graph.cmx deps/typing_deps.cmx inotify/inotify.cmx fsnotify_linux/fsnotify.cmx dfind/dfindEnv.cmx dfind/dfindMaybe.cmx dfind/dfindAddFile.cmx utils/sysConfig.cmx utils/tmp.cmx dfind/dfindServer.cmx dfind/dfindLib.cmx globals/autocomplete.cmx globals/find_refs.cmx globals/ide.cmx globals/serverConfig.cmx heap/globalStorage.cmx heap/prefix.cmx heap/value.cmx heap/sharedMem.cmx utils/path.cmx utils/shell.cmx hhi/hhi.cmx parsing/namespace_env.cmx parsing/ast.cmx utils/errors.cmx naming/naming_ast_helpers.cmx naming/naming
Closes https://github.com/facebook/hhvm/pull/4302

Reviewed By: @jwatzman

Differential Revision: D1697207

Signature: t1:1697207:1416852626:cd5878ac8fc915bc6571b7250b5f40faeea0ea96
Fix potential memory corruption during ArrayData::set

Summary: SetM can trigger a destructor, which can reenter the VM and take
actions that cause the array base to change (e.g., an upgrade from packed to
mixed).  So, after the cellSet it's not valid to keep touching the array's
memory, since it may have been freed.

Reviewed By: @markw65

Differential Revision: D1697915
Fix comparison of overflowing strings

Summary: Some clown introduced numeric overflow comparisons and forgot to negate a value in D1659152

Fixes #4303

{sync, type="child", parent="internal", parentrevid="1697745", parentrevfbid="289243761272582", parentdiffid="5742989"}

Reviewed By: @JoelMarcey

Differential Revision: D1697745

Signature: t1:1697745:1416607375:efec10b8e4762e2e1f387d1c723fa3aa4097374b
Typechecker: add spl exceptions declaration

Summary: Add Spl Exceptions definition in hhi file
Closes https://github.com/facebook/hhvm/pull/4317

Reviewed By: @jwatzman

Differential Revision: D1700453

Signature: t1:1700453:1416859389:1febeee537612ca73857c9729a020c664d19198f
cleanup: uniformly include "folly/*" using angle brackets

Summary: ... to placate cpplint. Via:

  git grep -l folly -- hphp/ | xargs sed -i 's|#include "folly/\([^"]*\)"|#include <folly/\1>|'

Reviewed By: @jdelong

Differential Revision: D1696778

Signature: t1:1696778:1416550426:4aae80a7b8604401a050a3bdddeb030e3e3d9b79
Update NEWS for "Yelawolf" release.

Summary: Update NEWS for "Yelawolf" release.

Reviewed By: @alexmalyshev

Differential Revision: D1701570

Signature: t1:1701570:1416869004:abaa922ec8cf1917d36486a7e9f4ff257e9e3e6f
Plug Unc and InitUnc RATs through to the JIT

Summary: IIRC they used to be a regression (maybe a JIT-time only issue, which
preflab isn't measuring anymore)---but it looked probably in the noise-ish now
in a perflab run.  Still leaving out OptBool and such types.

Reviewed By: @swtaarrs

Differential Revision: D1699541
Add support for --region-mode=wholecfg to hhvm_wrapper

Reviewed By: @mhahnenberg

Differential Revision: D1699777

Signature: t1:1699777:1416771111:becfb50b8ea59b21f061716028e3ee42c6f11ad7
Convert JEMALLOC_STATS_ADJUST into an inline method.

Summary: It's not that complicated. Also simplify how jemallocDebt is
declared.

Reviewed By: @bertmaher

Differential Revision: D1699860
abstract constants: adding parser support [1/2]

Summary: From the moment that PHP introduced late static binding, it
 created the possibility of `static::SOME_CONST`, which left the class
 hosting such a method with two unpalatable choices:

  * defining a default value for SOME_CONST, with the clear disadvantages
    of not having a suitable default **and** forgetful subclasses not
    overriding the default
  * not defining the default value, and incurring unexpected fatals in
    code not easily amenable to static analysis.

 This diff introduces `abstract const` to the HHVM parser, at this
 point dropped before the preclass is emitted.

Reviewed By: @paroski

Differential Revision: D1693720

Signature: t1:1693720:1416609953:06a21a13fbda5acc7d145d92e21a2d1dd53d9dbe
typechecker: some housekeeping in hhi files

Reviewed By: @jwatzman

Differential Revision: D1701098

Signature: t1:1701098:1416873058:f81c48c5748ea4ade05e3d2cbf9b004afea0420e
Silence "unsound type" warning

Summary: No idea why it doesn't know that `exit` is okay, and why it
shows up here and not on line 122, but w/e.

Fixes https://github.com/facebook/flow/issues/116

Reviewed By: @elgenie

Differential Revision: D1701802

Signature: t1:1701802:1416871970:eebc7d06d8a4203b6cd59637cc0648b3ae26d7fa