Add Kohana to test runner

Closes #1895

Reviewed By: @fredemmott

Differential Revision: D1210785
Add XMLReader::expand()

Fixes #1976

Reviewed By: @ptarjan

Differential Revision: D1206514

Pulled By: @fredemmott
Allow resetting the default statement class to PDOStatement

Currently HHVM strictly enforces that the statement class be a descendent of PDOStatement. While the PHP Documentation states that it has to be a subclass, I believe this is subclass in the sense implied by Liskov's OO substitution principle. Thus, the PDOStatement class should be accepted.

Zend does accept the PDOStatement class without warning or notice.

Closes #1951
Closes #1954

Reviewed By: @fredemmott

Differential Revision: D1210794
Fix DateTime->format() flags 'e' and 'T' for offset time zones.

Closes #1962
Closes #1731

Reviewed By: @fredemmott

Differential Revision: D1210795
Make escapeshellarg(<empty>) return "''" in non-HH mode.

Closes #1979
Github Author: Ioan Negulescu <idn2104columbia.edu>

Reviewed By: @fredemmott

Differential Revision: D1210842
ini settings: Accept empty strings where integers are expected

Closes #1950
Closes #1953

Reviewed By: @fredemmott

Differential Revision: D1210791
add DOMNameSpaceNode

Fixed DOMXPath->query for namespaces by adding DOMNameSpaceNode class.

Closes #1958
Closes #1872

Reviewed By: @fredemmott

Differential Revision: D1210822
Fixed ini_set on session.serializer_handler

Added tests and fix so that session.serialize_handler returns last set value after ini_set is called with an invalid serialize handler.

Closes #1990

Reviewed By: @fredemmott

Differential Revision: D1210800
Clean up immediate-handling in LdRaw/StRaw

This fixes several potential problems with LdRaw/StRaw.

First, their signatures are SUnk, which means completely
unchecked.  I added a checkCustom() lambda in assertOperandTypes()
so we can implement custom checking for the SUnk opcodes.

Second, StRaw should only get int32 immediates for its value.
Bigger than that should get a register.

Third, LdRaw had unused support for a runtime-valued field,
which it used as a byte-offset (and got the store size from
the destination type!).  Removed the logic.

Last, added LdRaw operand 1 (kind) to the mustUseConst predicate.

Reviewed By: @alexmalyshev

Differential Revision: D1207057
Don't handle LHS constants in emitCompare[Int].

All we would do is use a scratch register, so handle this
via constraints.  Also rename stuff to match src positions,
and loosen constraints for more fused compare+branch operators.

Reviewed By: @alexmalyshev

Differential Revision: D1208726
Clean up immediates in StringIsset and CheckPackedArrayBounds

Reviewed By: @alexmalyshev

Differential Revision: D1208770
Fix a bug in passPredictedAndInferredTypes

isCounted() should've been !maybeCounted().

Reviewed By: @swtaarrs

Differential Revision: D1211022
Remove type-object.h's dependence on type-string.h

Reviewed By: @ptarjan

Differential Revision: D1211222
change get PHP gethostname() to just call gethostname() syscall - Zend compat

change PHP gethostname() to just call gethostname() - Zend compat

Reviewed By: @ptarjan

Differential Revision: D1209136
Change various Pair methods to return ImmVector instead of Vector

Reviewed By: @elgenie

Differential Revision: D1210658
Make undefined function errors compatible with Zend

refs facebook/hhvm#1904

Reviewed By: @ptarjan

Differential Revision: D1209631
Unset public properties also cause calls to __unset()

__unset() was being called only for private and protected properties, as it seems.

Closes #1930

Reviewed By: @fredemmott

Differential Revision: D1211230

Pulled By: @ptarjan
Fix bug with static properties with specialized array types

Right now the minstr portion of the abstract interpreter is
assuming a static property with a specialized array type will never
show up.  This is true for normal instance properties, at least, but I
missed that it is possible with static props.

Reviewed By: @edwinsmith

Differential Revision: D1205714
Deal with empty arrays better

Previously, all the specialized array types implied that the
array was non-empty.  This fails to get types in some common idioms
(e.g. populating a vector-like array in a loop, where it was empty
going into the loop.)  This diff just adds new bits for empty arrays,
so any of the specialized array types can be unioned with either
counted or uncounted empty arrays.

Reviewed By: @dariorussi

Differential Revision: D1208262
Eliminate trivially unnecessary cast opcodes

If you cast something to a type it already is, replace it
with a Nop.

Reviewed By: @bertmaher

Differential Revision: D1208390