Initial support for handling builtins more intelligently in hhbbc

Summary: This supports constant folding them from a whitelist, and adds a place
to write specific handling for builtins at the type level.  (Only one of these
is implemented for now, get_class, because it looked pretty trivial for a test
case (this diff cuts about 20% of the calls to it out).)

For constant folding, this requires the ability to change a C-flavor'd stack
element into an R, which is weird, but this adds it.  Followup diff will
peephole those away.

Reviewed By: @bertmaher

Differential Revision: D1612167
Set up hhbbc peephole opts to easily add simple 1-token lookahead rules

Summary: This diff only implements RGetCNop;UnboxRNop -> Nop, which was the
reason to do this for now.

Reviewed By: @bertmaher

Differential Revision: D1613323
Get region-mode=method to work enough for doing small test cases

Summary: It just needed arcs and not to run on pseudo mains.

Reviewed By: @alexmalyshev

Differential Revision: D1623995
Get rid of s_file_data

Summary: It was a request local holding an int. But the int is always
reset to 0 before being modified and then read, so it can be a thread
local int.

Reviewed By: @jdelong

Differential Revision: D1623063
Fix how ?-> deals with Tunresolved

Summary: The ?-> operator wasn't being conservative enough with Tunresolved, which
caused erroneous "?-> operator is being used but the base cannot be null"
errors.

This diff fixes it so that ?-> is more conservative about Tunresolved.

Reviewed By: @jano

Differential Revision: D1625583