fix callble typehint in interp mode

Somehow the JIT doesn't hit this codepath, but with interp mode the param is a string, but we think `callable` means an object of type callable.

I hate to hadd another top-level if statement to every call. Would a switch statement on the type be better?
make test runner better

Some suggestions after talking to @bsimmers

* Print failing tests and diffs as it runs
* Remove the list of failed tests at the end (since they print as you go) and instead give a one-liner to re-run failed tests.
* Use moar colorz!
Update md5_file() and sha1_file() to use hash's streaming digest

For large files, the old approach would potentially
allocate ridiculous amounts of extra memory.  Let's not do that.
Change iter_value() to return TypedValue*

Make internal iterator API return a TypedValue* instead of Variant. This
makes it possible to use the same API to update the value in-place
(except for Set, which returns const TypedValue*) and provide optimized
iterator that avoids unnecessary ref counts.
Move the debugger command line test out of the C++ debugger test harness and use the standard harness.

Added a tweak to test/run to make it look for $test.in and, if there is one, to add <$test.in to the command line for running the test. Together with $file.opts and a config.hdf, this makes it possible to fire up a command line debugger for php, feed it with commands, obtain its output and check it against expected output.
Relax more guards

This diff significantly generalizes guard relaxation and adds support
for more bytecode instructions.  Before, only CGetL, SetL, RetC, and
RetV were able to relax their inputs, and only in limited ways,
e.g. if their outputs were not used or only used in specific ways.
The new approach follows how the input types flow into the output
types, thus allowing dependencies to be relaxed even if they feed a
chain of values through the tracelet.

This diff also add support for relaxing inputs for the following
bytecode instructions:
  - Pop*
  - FCall
  - FCallArray
  - AddElemC
  - ArrayIdx
  - SetS
  - SetG
  - ContPack
  - ContRetC
  - ContHandle

The spill area was also increased (from 16 to 32 cells) since relaxed
dependencies increase register pressure -- relaxed types are not
immediates that can be burned in and need to reside in registers
instead.
More get-ectomy in IR code.

This is about all I plan on doing for now.  Simple accessors
lost their 'get' prefix.  Complicated functions are either still
called getWhatever, or got renamed (genWhatever, makeWhatever).
Fix some hhbc verifier bugs

With these changes, we can run

  HHVM_ALWAYS_VERIFY=1 HHVM_VERIFY_VERBOSE=1 hhvm

without crashing.
Allow CSE of ArrayGet by converting to IncRef

ArrayGet has fairly minimal side-effects: IncRef of its
result, and raising a warning if the element is undefined.  To CSE
ArrayGet, replace it with an IncRef of its destination.  Raising
multiple warnings for repeated accesses doesn't seem to have much
value, so just ignore them.
Make exif parser more robust

Currently, as soon as it finds a bad field, it gives up.
Some android devices consistently create a bad field (that
we dont care about) right before fields that we do care about
(the orientation, in particular).

Most exif parsers just move on to the next field in this case;
this changes ours to do the same.
Fix a lint error
Fix a type bug in BindS and BindG

They should load as a V not a C.
Kill more of tx64

I started by just killing a few unused flags from
NormalizedInstruction and then deleted things that were even slightly
related (and things that depended on them, etc...).
Revert "Rename closures and generators"

This reverts commit f9e1a492285d27021ba50c49049823e7516edb6a.
Expose a config file option for turning of colorization in hphpd output.

Expected test output for hphpd command line tests is difficult to read when colorization is present. Although there was an internal switch to turn off colorization (for the benefit of API clients), there was no command line option and no config file option to turn off colorization. This diff adds such an option and also fixes a few places where colorization was added regardless of the value of the internal switch.
disabled tests that only test underlying library

I'd rather not do this, but can't think of another good way. These 4 tests are failing on our opensource build since the image librarys are different there. The files they made end up looking the same but the bytes are different.

I just recently re-enabled these tests as they were a big comment (which I assumed was by accident) in the PHP-in-C++ version. (I'm using that to justify that we weren't covered before).
Rip out preconsts

This was barely a demonstrable win in sandbox mode when I first wrote
it and it's not even used in hhir. It's probably been bitrotting and is causing
crashes for some people. Time to say goodbye.
Remove BPass* instructions
Collapse runtime/vm/translator's contents into runtime/vm/jit

Facebook: ~bsimmers/bin/move-vm-files.sh
Fix unsatisfied order dependency in systemlib

SplPriorityQueue depends on SplHeap. Make sure SplHeap appears first.