Rework constants to use the target cache exclusively

Make the targetcache the one true home for constants,
so we dont need to (also) insert them all into
VMExecutionContext::m_constants (which is now gone).

By also making "non-volatile" constants persistent, we save
initializing most of them at all in RepoAuthoritative mode.
Don't profile 86ctor

Its an implementation detail, and we may or may not end up
calling it.
Dont box by-reference params that would warn/fatal

If we know at emission time that an argument is by reference, we box
it, and use FPassV with a NopOut meta tag. But that bypasses the
mechanism for warning/fataling when passing a Cell. So skip the
optimization in those cases.

Fixes two more QuickRepo tests:
test/quick/FPassC-2.php
test/quick/FPassC.php
Add a tvIsPlausible assertion in vectortranslator @override-unit-failures

We were hitting an assertion due to a type error in a vector
translation far downstream.  Assert up here to keep it closer to the
TC.
try to fix machine dependant problems again

I think these are dependant on relative directories. Seeing if this helps.
fix 1798 output

It seems calling ##fileinfo->getFilename()## twice outputs the empty string the second time. Document that in the test for now and look at it later.
Disable memelim

It's causing issues with the vector translator.
Litstr must die, episode II.
nicer message on failure

smith asked for this. Prints out the exact options to run it by hand. If it is in repo mode, it uses the already built repo. Otherwise it just runs the file. If you are only running 1 test, it does the FILENAME sustitution for you. I thought it would get pretty ugly if I printed out that line for every test.
Get rid of baseStrOff

It was unnecessary book keeping, and caused us to differ
from zend's behavior
Method names should not be coerced to string

Zend fatals if the type is not string, where hphp would
coerce to string. In RepoAuthoritative mode, this meant that
scalar expressions would be converted to strings at bytecode
emission time, bypassing the fatal (or, in most cases, resulting
in a different fatal).
Remove drawCFG and tcdump trace module

We have tc-print now, and I don't think people use this
anymore.
Cleanup for debugging IR under gdb

update block range on each IR instruction
add CodeGenerator::print()
fix runtests
fix SlowRepo tests

Yay, back to the glory days of having repo tests.

The problem was that we weren't being smart about ##__DIR__.'/some/string'## during the compile step. Now we are.
Add support for safe (un)serialization using (un)serialize()

The unserialization of random objects may be dangerous because the destructor of the object will be called when the unserialized objects are out of scope. However, the person who wrote the class may not be aware of the danger of unserialization. Therefore, we would like to require every users of the unserialize() to provide a whitelist of the class names that are authorized to be unserialized so that we can make sure the object is safe to be unserialized.

Add a parameter 'class_whitelist' to unserialize() function to determine whether to raise warnings for unsafe unserialization. If the class to be unserialized is not an instance of Serilizable or not in the whitelist, warnings will be raised. For the detailed reason why we need this, please see http://fburl.com/SafeSerializable for more information.

Add a parameter 'all_classes_enabled' to allow  those hphp functions that need to unserialize any class. For example, fb_call_user_func_async() will need to serialize and nserialize the given parameters.
Disable test/quick/serialize.php
Don't fold invalid string operations at compile time

It turns out the String::rvalAt and String::set don't raise
warnings on invalid offsets, so check explicitly before using them.
Conversions in IR

Rolls up all previous diffs into a single diff and uses the CALL_OPCODE macro.
Remove one level of indirecation

Instead of the python script calling the php script which calls the perl script, now the python script returns a command to run.

I was thinking about chaging the jenkins output to mention the php script intead of the makefile target, but sadly there are a few things that aren't scripts and are just makefile targets so it was too much work and I just stopped here.