Update NEWS for release

Updating the NEWS file for our next release.  These were some
highlights that I plucked from the commit log but I'm open to adding
or deleting some.

Differential Revision: D933280
Remove some redundant bool parameters

No longer actually used

Differential Revision: D933388
Factor register shuffle algorithm into own module

Factor register shuffle algorithm into own module

Differential Revision: D932183
Removing unnecessary mapping of var ids on CreateCont.

Since D898769, all locals in generator bodies have the same ids
as in the corresponding 'create generator' methods, so the mapping
between these ids is no longer needed.

Differential Revision: D932354
Miscellaneous cleanup

This is all stuff I did while working on guard relaxation
that isn't strictly related to guard relaxation:
- Stop using CheckType with Nullptr.
- Move a bunch of things from ir.cpp to extra-data.cpp and ssa-tmp.cpp.
- Turn DataTypeCategory into an enum class.
- Add folly::FormatValue specializations for JIT::Opcode,
  DataTypeCategory, and any objects with a toString method.
- Kill the Eval.JitCompareHHIR runtime option. Most of the code using
  it is already long gone.
- Add smart::flat_set.
- Clean up MInstrInfo constants, fixing a bug that missed some
  undefined local warnings.
- Assert that the type of IRExtraData subclasses passed to gen()
  matches what the opcode wants.
- Remove unused DontGuardLocal, DontBreakLocal, and DontBreakStack1
  from translator inputs.

Differential Revision: D926849
Fixing typo in zRevRange function

The zRevRange function argument $withscore was referenced
within the function as $withscores. Changed argument name to $withscores
so they match.

Closes #941

Differential Revision: D934709
Fix sockopen_impl with IPv6 addresses

sockopen_impl requires IPv6 addresses be enclosed in brackets.

Differential Revision: D927309
Add basic guard relaxation to hhir

This diff implements basic guard relaxation in hhir. Whenever we read
a local or pop/peek at HhbcTranslator's EvalStack, a DataTypeCategory is
specified. The source of the value is traced back as far as possible, and if we
end up at a guard instruction, the constraint for that guard is updated
appropriately. After IR generation, a pass is run to change the types of these
guard instructions to the least specific type allowed by their constraint. This
is currently only used to eliminate completely unused guards in the tracelet
region selector, so all the guards are either DataTypeGeneric or
DataTypeSpecific.

Differential Revision: D924955
move SplObserver tests from bad to good

move basic tests for SplObserver

Closes #968

Differential Revision: D935248
Fix a crash destroying Funcs

Func::destoy needs to block on getting the write lease, so it
can smash the function prolog.

Also, the prolog array in cloned closures is used to redispatch to
the translation corresponding to the clone, since we never enter
such functions via their prolog. Since its not a true prolog, we
shouldn't smash it.

Differential Revision: D933704
Trim down test/slow/ext_network

It's flaky because it depends on external servers
responding. Remove those bits.

Differential Revision: D935602
Fix some stack overflow bugs

If re-entry triggers stack overflow, there is no FCall or FCallArray,
so the code to find the pc in REQ_STACK_OVERFLOW would fail. If it
managed to get through there, it would then try to DecRef the contents
of an ActRec, sometimes causing it to DecRef a Func.

In addition, if a "leaf" function resulted in re-entry we didn't
necessarily check the stack.

Differential Revision: D936843
hphp: Instance ID for controlled stopping of server

When port-takeover is used, new instance of the process will be started but
something can call stop command for the old task. Given how `localhost:9099/stop?`
can affect hhvm that was just started, I want to limit stop command to be
specific to an instance ID.

This instance ID could be a random number, or container uuid of LXC.

Differential Revision: D932953
Remove allocElmFast; its only called in one place.

It used to have two callsites before the vector code landed.

Differential Revision: D932789
Do not check for self in assignValHelper.

It should be almost never true, and the assignment code is
already safe for self-assignment.  Note if Variant V == uninit,
then V=V now converts to null, unlike before.  IMHO this is
a bugfix but I don't know that we've seen it in the wild.

Differential Revision: D933229