Fix annoying typechecker tests that have to be updated with every single change

Summary: I didn't know that hh_show works that way when I wrote them. I switch them to instead pass the value to functions and use the lack of error message as a verifier. It's not checking it as strictly as comparing hh_show, but the current approach is not acceptable.

Reviewed By: @jwatzman

Differential Revision: D1606478
Implement readline_info()

Summary: Used php-src for this.
readline is now at 100% good zend tests
Closes https://github.com/facebook/hhvm/pull/3799

Reviewed By: @JoelMarcey

Differential Revision: D1568453
Unbound fixes #2

Summary: Me again, sorry! So after the last issue discussion, here I am adding hhi unbounds manually when I encounter them.

- Added constants to file, json, mb, and a few string modules
- Added finfo module
- Added lots of reflection stuff
Closes https://github.com/facebook/hhvm/pull/3726

Reviewed By: @jwatzman

Differential Revision: D1550354
remove FOLLY_OVERRIDE usage in hphp

Summary: we currently have a mix of using 'override' and FOLLY_OVERRIDE so the macros do not help anything.

matches the removal of FOLLY_FINAL from hphp.

Reviewed By: @jdelong

Differential Revision: D1607671
Fix shouldTranslate() for Optimize translations

Summary: We used to allow Optimize translations regardless of the
Eval.JitAMaxUsage limit, but I recently broke that while refactoring
the code to use shouldTranslate() to also check the
Eval.JitGlobalTranslationLimit limit.  This diff fixes the issue.

Reviewed By: @swtaarrs

Differential Revision: D1604752
Temporarily stop the ini_get_all_* test pain

Summary: Before we have a mutiny, we should rethink how we want this test to optimally work.
Apparently the value of some runtime options change more often than first thought.

So, skipping the test for now, until we come up with the right solution. Options are:

  # Whitelist only the option names and values that are likely to be used externally and we want to track. **What are those options?**
  # Have the test only catch name changes, additions, removals? This would lessen pain, but could still cause minor annoyance.
  # Get rid of this test completely and document the settings in code and make sure we have detailed code review on option changes? **Brainstorm: Is an arc diff hook possible here??**

Reviewed By: @jdelong

Differential Revision: D1609762
Raise calls in vasm to new vcall instruction

Summary: vcall encapsulates much more information about a call than the raw
call instruction, which is necessary for emitting llvm from vasm. For direct
x64 code generation, a lowering pass converts the vcall into what would've been
emitted before this diff.

Reviewed By: @maksfb

Differential Revision: D1593725
Remove Vout::m_area

Summary: It should always point to a valid block, so just get the area from
that.

Reviewed By: @maksfb

Differential Revision: D1602828
Vasm pretty printing part 3

Summary: The register allocation phase inserts a lot of instructions
without giving them origins. This patch fixes that.

Reviewed By: @swtaarrs

Differential Revision: D1607032
Fixed vfsstream touch test cases.

Summary: Expose STREAM_META_ constants to hhvm runtime.
Closes https://github.com/facebook/hhvm/pull/3955

Reviewed By: @paulbiss

Differential Revision: D1610551
Use FixedVector for Class::m_[sp]initVec

Summary: This saves 32 bytes, bringing Class down to 280 in the lowptr build.
It's not quite a size class down yet, but it gets us that much closer.

Reviewed By: @jdelong

Differential Revision: D1609365
Shrink Class to 256 bytes

Summary: Shrink some fields that seem like they can be safely shrunk, apply
LowPtr, and move some stuff around.  Also reduce SProp from 56 to 48 bytes by
moving a field.

Reviewed By: @jdelong

Differential Revision: D1610488
Use a global cache for timezone info

Summary: Instead of caching the same info in every thread, share it using a
global AtomicHashArray.  I also considered pre-computing all the tzinfo, but a
good number of them seem unlikely to be used, so they'd just be taking up
space.

Reviewed By: @mclarkelauer

Differential Revision: D1607602
Admin Port for getting random apc entries and size

Summary: Added admin port for getting random apc entries and size. It takes a
count variable, defaults to one, and returns that number of random apc entries.

Reviewed By: @bertmaher

Differential Revision: D1599813
Only execute nextIntersect's linear search when necessary.

Summary: Two intervals that conform to SSA can only intersect if the definition point
of one is inside one of the other's live ranges. (or vice versa). Take advantage
of this by short-circuiting the intersection test when two intervals cannot
intersect.

Also add a few more intersection-avoidance checks:
  - never try to compute the next intersection of a fixed interval whos register
    is already live or with a regular interval whos register is already blocked by
    a fixed interval
  - if the current interval ends before another starts, don't bother with the linear
    search since they cannot intersect.

Reviewed By: @markw65

Differential Revision: D1591098
Explicitly destroy the singletons

Summary: Make sure they're destroyed before we exit

Reviewed By: @bertmaher

Differential Revision: D1610009
Replace Vunit::roots with a single entry block

Summary: We don't need multiple roots. All code should be reachable from a
single entry block. The only complication was bindaddr. It's now roughly
analogous to the other service request instructions in that it lives in the
code block that references it and directly emits the service request itself to
frozen.

Reviewed By: @edwinsmith

Differential Revision: D1603594
Remove outputDependsOnInput

Summary: No longer used

Reviewed By: @bertmaher

Differential Revision: D1610553
Remove NormalizedInstruction::changesPC

Summary: Nothing uses it.

Reviewed By: @swtaarrs

Differential Revision: D1610566
Remove default cases in uses of translator-instrs.h

Summary: Removing the defaults gives you a compile error when you add a new
opcode.  (Don't be alarmed about the nops in the interp one list: we skip those
first using isAlwaysNop, although we probably ought to just call an empty
emitFoo function ...)

Reviewed By: @swtaarrs

Differential Revision: D1610564