Flesh out more IR specification

And remove some more dead code, while I'm at it.
Comment out assertion in codegen.cpp
Fix a bug in apc serialization

ArrayData::hasInternalReference had an incorrect
short-circuit when ds was false; if it found a
Serializable object, it immediately returned false,
even though later events might have forced it to
return true.

The result is that arrays with internal references
that contain Serializable objects may not deserialize
correctly (the internal references can get split, for
example).
Add FTRACE macro to util/trace.h

Trace with folly::format.
Support WholeProgram=false for hhbc compilation.

If -v WholeProgram=false and --optimize-level=0 for hhbc compilation,
use the same file-level optimization configuration as is used by hhvm.

Update repo documentation.
Remove repo contention for TestCodeRun*.

Modify the test_code_run program to specify a distinct repo for every
test, so that no repo contention occurs.

Remove the default limit of 20 parallel tests, and for hhvm increase the
default to four times the number of CPUs to improve throughput.  hphp
uses a lot of memory when building, so leave the hphp default at the
number of CPUs.
Remove TypeInstruction and some associated clean up

Gets rid of TypeInstruction, instead putting a new (possibly
Type::None) Type in the base class for the IsType instructions.  This
should go away after things are changed so SSATmps have types instead
of instructions having types (needed for multiple-dsts).  I think it'd
also be nice to remove the ExtendedInstruction vs IRInstruction
distinction (allow any instruction to have any number of srcs (and
eventually dests)); this is a small step toward that.
Add SSATmp::m_type

Adds a Type field to SSATmp, so we can store the type of a variable
separate from the type hint attached to an instruction, *and* so that
we can have instructions with more than one destination, each with
a distinct type.

For the time being, this field just copies IRInstruction::m_type and
tries to keep them both up-to-date.  Future diffs need to decouple the
use cases for the two fields.
Add support for virtual helper calls, and use it for release methods

This avoids going through a wrapper when calling release methods, just
like Tx64 currently does.