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