Periodically clear the PCRE cache

Summary: Steady growth of the PCRE cache can cause HHVM to start swapping after
sufficient uptime.  This diff adds a configurable expiration interval for the
cache, which simply clears the whole thing every N seconds.

The advantage of this policy is that it's simple; we don't have to do any real
bookkeeping to keep the cache under a particular size, and we don't have to
worry too much about a cache size versus performance tradeoff, since the cache
can grow up to a generous max size within the time interval.  Instead, it takes
care of slow, steady growth over time.

Of course, the disadvantage is that right after the expiration interval, some
hot regexes will need to be recompiled.

Reviewed By: @jdelong

Differential Revision: D1590095
Remove unused global options.

Summary: Part of my ongoing effort to identify what global state needs
to be saved and restored

Reviewed By: @elgenie

Differential Revision: D1603816
Shrink EHEnt by packing fields

Summary: Goes from 56 bytes to 48 bytes.

Reviewed By: @jdelong

Differential Revision: D1602278
Print(Str|Int|Bool) can throw

Reviewed By: @jdelong, @swtaarrs

Differential Revision: D1603435