Add a runtime switch to disable dead code elimination

This fixes a few problems when DCE is disabled, however some
tests still fail.  Fixed:
 * register allocator assigns registers to unused destination tmps
 * fixed LiveOutRegs calculation with unused results
 * removed assert from cgJmp_
 * support immediate constants in cgMov
Move hphp/doc -> hphp/src/doc

Needed for FB internal restructure.
Minor tweak so genDefConst works with all ints

Right now it gets confused if you don't give an explicit
argument list on many ints, if they are 32 bit or unsigned or int64_t
vs int64, etc.
Move jump simplifications to the Simplifier

It looks like these were implemented before simplifyCmp, so
it duplicated some of the abiltiy to simplify comparisons with certain
types of constant arguments.  This code can be simpler and in the
simplifier.
Some assertions for invalid registers

Sometimes we have PhysRegs that are InvalidReg and try to use
them anyway.  Right now, there's some cases where this ends up passing
reg::noreg to an emitC* function that treats that as a special
meaning, and you can emit machine code that didn't have the type of
memory operand you wanted.  Assert here because PhysReg stuff is
constexpr (cannot assert there).  Ideally it wouldn't implicitly
convert to Reg64 and this would all be impossible, but oh well.
Add support for embedding the repo

Modify hphpc so that if format contains "exe" it uses objcopy
to put the generated repo into the hhvm binary, in a section
named "repo".

Write an sqlite vfs wrapper that allows us to open a range
of bytes in a file as a read-only sqlite database (using the
filename to encode the range: file:<start>:<length>).

Use libelf at startup to see if there is a repo section, and
if so enable the vfs wrapper, and add appropriate
repo-authoritative options to the command line to use the
repo section as the repo.
Add pseudo-counters for tx64 vs. hhir instructions

The new runtime option (Eval.EnableInstructionCounts)
combined with the new pseudo-counters instr_hhir and instr_tx64 will
let us track how many executed hhbc instructions were translated by
tx64 vs. hhir.
Getting started on HHIR FP support: OpEq.

While comparisons aren't very dynamically frequent, they're an
easy place to get started on implementing FP support. Like tx64, I haven't
bothered to teach the register allocator anything about the xmm regs; I
just move operands from gprs to xmm0 and xmm1, and evaluate the expression.

I was worried about interfering with spilling to these same registers, but
we spill to mmx registers, which alias the legacy floating point stack.
The XMM regs are physically distinct.