Remove transform_foreach

Iteration opcodes work with locals that are correctly suspended/resumed
thru yield, transform_foreach not needed anymore.
Fix a pair of missing emit*TVType calls.

Reviewing the diff between feature and trunk revealed these two
instructions that still hardcode dwords for types.
Put compiler_id in a .cpp file on every link line, remove generated/

Instead of stashing compiler_id in a header that causes rebuilds,
regenerate on every build and list on every link line,
without depending on them.
Add Awaitable interface

Our PHP code can be simplified by using a common interface
instead of relying on instanceof for proper dispatch.
Fix nemo warnings about undefined $this

The fix for the crash caused us to take a different path
when checking locals.
Fix HHIR simplification for missing bool-to-int promotions

The simplifier was not promoting the boolean to integer in some
cases. I hit this for the add-zero case, and code inspection revealed
similar bugs in sub-zero and multiply-one cases.
Remove Option::OutputHHBC and Option::SystemGen
Update Setprofile test
Add on started callback to AsioSession

The PHP code using Awaitable interface will need this.
{,List}AssignmentExpression: add support for RHS first evaluation order

Add a flag to {,List}AssignmentExpression that changes evaluation order
to RHS before LHS.

This will be used by YieldExpression.
Remove unused buildTarget function in compiler.cpp
Avoid storing to the stack the same value just loaded from there

Sometimes SpillStack and Call end up storing onto the stack a value
that was just loaded from the same stack location.  There was already
code in cgSpillStack to avoid the extra stores in some cases, but that
still kept the LdStack alive.  This diff detects some of those cases
with SpillStack in the Simplifier, which allows the LdStack to be
eliminated by DCE.  This diff also adds similar support for Call.  The
operands that don't need to be store onto the stack are replaced with
None.

Note that the optimization in cgSpillStack is not subsumed by this
diff.  In the Simplifier, we cannot chase through IncRefs as done in
cgSpillStack -- that would result in an IncRef that is not consumed.
add Callable typehint

php-5.4 has it http://www.php.net/manual/en/language.types.callable.php
Disable flaky TestExtPdo-test_pdo_mysql
Always setup Repo paths in hphp mode

We didnt do it for the analyze target, for example,
which resulted in hphp hanging on some machines due to
trying to create ~/.hhvm.hhbc
Re-enable millisecond mysql timeouts
Add more unit tests for conversion operations.

A batch of small sanity tests for the new conv instructions.
Fix ODR violation in TestExtCurl

TestExtCurl was failing in the fbmake build, because for some
reason the other TestServer was being used.  AFAICT it's within the
compiler's rights to do whatever it wants here, though.
Split Conv<T> into type specialized ConvToArr, ConvToBool, ConvToDbl, ConvToInt, ConvToObj and ConvToStr instructions.

This is a "mechanical" refactoring that is not supposed to introduce any new behavior or to fix anything. It sets the stage for further changes that will reduce the number of places where code generation punts.
:Allow $this on closures

In Zend 5.3 they decided that closures should inherit the ##$this## from the containing scope. This brings us close to paraity with them. The remaining thing is to make

    function() use ($this) {}

fatal after we purge it from WWW.