Remove the CGetM_LEE special case

Array access of the form [int][str] seems like a narrow
case to optimize for; the helpers are tricky and we're
i-cache limited.  This removes the special case.
IR translation for UnpackCont, PackCont, and ContExit

Pleasantly straightforward. This implements translations for all the Cont*
instructions that appear inside actual generator bodies. I have to still do
CreateCont and ContEnter, but in a separate diff.
Factor out decRefObj and decRefRef

More code cleanup for common the common decref pattern.
Enhance IncRef/DecRef elimination

Enhance IncRef/DecRef elimination by emitting a DecRefNZ when
dec-refing a value that is also stored in a local -- since a local
still contains a reference to the value, such DecRef can't get to zero.
Move peephole from runtime to compiler

Peephole was including MetaInfoBuilder from the compiler.  It
makes more sense to be out of the runtime anyway.
Move LinearScan and MemMap classes out of headers

These can be private to their respective translation units,
so we don't have to build other things when changing them.  No big
deal.
IR translation for IncStat
Emit more compact code for uninitting locals in prologues

This saves 2 bytes for the first local and 4 bytes for each
local after that in the inline case. Converting the loop code to the
new style saves a byte on the storel (it used to store 8 bytes to get
both _count and m_type, now it stores 4 bytes to m_type).
OpSame and OpNSame are always native calls

Any comparisons that are simple enough to be done inline end
up getting converted to Eq. This makes for much nicer register
allocation around the call.
Some refactoring to get rid of bogus KindOf*.

Let's try to keep internal bits out of DataType. This
was an easy first step; I'll go after the other TypeCheck ones in
a follow-on diff.
Turn on CGetM type prediction.

This diff enables the dormant CGetM type prediction code.
This affects tracelet geometry, sometimes making the trace guards explode.
To compensate, I appear to need two new heuristics:
1. give up on type prediction if we're in a polymorphic trace
2. don't inline returns in polymorphic traces.

These two heuristics use different tracelet depths to kick in;
an exhaustive search of an 8x8 matrix of parameters suggests (2,6)
is the right setting for now.
NewTuple IR implementation

Add support for NewTuple.  The new_tuple helper function needs
the count and values passed to it on the stack, which is like
a call instruction but unlike most other IR instructions.
Supported BareThis, IncStat, and SetOpL in the IR.

Added HHIR support for 3 bytecodes, IncStat, SetOpL, and BareThis.
These showed up among the top reasons the IR punts in a sandbox run.
Add support to FPushObjMethodD for fast method lookup using known class

FPushObjMethodD implementation in HHIR was lacking a fast-path
implemented in TranslatorX64, namely when the base class is known.
Changed CG_PUNT macro to print its argument.

Change the CG_PUNT macro in codegen.cpp so that it prints its argument
instead of its function. This allows us to get much more precise reasons
for why codegen punted.
Implemented call-ret support in IR.

Implemented suport for using the ret instruction in the IR.
Enable the AdminServer in config-server.hdf

Now that the admin server isn't enabled by default, we have
to turn it on in the config for TestServer. Also fixed up
test_server.cpp so individual tests can be run.
Move prologue redispatch code to 'a'

This code is hot, so put it in 'a' instead of 'astubs'.