Add a MakeReserveMixed, use it from ArrayInit and a few places

Reviewed By: @edwinsmith

Differential Revision: D1240690
Fix an assertion failure in resolveRegCollision

I don't entirely understand this case, but the line that
calls InvalidReg[InvalidReg] will always assert.

Reviewed By: @dariorussi

Differential Revision: D1256873
Separate packed array memory layout from HphpArray

Makes packedToMixed transitions more expensive but gives us
less memory usage and allows more efficient code.  The new packed
array layout is just the 16-byte ArrayData header, immediately
followed by an array of TypedValues.  The maximum capacity for a
packed array is 2^24 in order to allow storing the capacity field
overlayed with m_kind.

Reviewed By: @edwinsmith

Differential Revision: D1254245
Optimize witer_next_key

Make the hot/cold splitting work better by keeping calls out
of the hot path.

Reviewed By: @jano

Differential Revision: D1256773
Some cleanup in iteration helpers

Remove some dead code, and avoid a null check in
witer_next_key.

Reviewed By: @jano

Differential Revision: D1258114
Remove ArrayData::endRef, add a few comments to ArrayIterator

Also some random things from auditing callsites of things
like getValueRef and secondRef.  I was trying to figure out if it was
possible to require that callers of these functions don't ever box the
Variant& that is returned, but it looks like this is not the case.
(Which means the hypothetical bug described in #4055855 is probably a
real bug.)

Reviewed By: @edwinsmith

Differential Revision: D1258707
Make a few member-operations warning/error messages match php5

Copied the messages from php5 for various cases.

Reviewed By: @ptarjan

Differential Revision: D1250389
Move stats to the new interp model and make extended stats for builtins

Builtin stats

Reviewed By: @jdelong

Differential Revision: D1248884
Support returning doubles in the JIT

Basically a matter of turning it on and
copying the result into the right register, actually.

Reviewed By: @edwinsmith

Differential Revision: D1261283
Port ICU extension to HNI

Fold it into the "intl" extension

Reviewed By: @ptarjan

Differential Revision: D1261428
Add missing NonSmartCopy entry point for NameValueTableWrapper

I'm not sure if there's a way to cause this to happen from
user code (maybe try to insert $GLOBALS into apc?), but it probably
would've SEGV'd because it would try to treat a NameValueTableWrapper
as a ProxyArray.  Introduced by my EmptyArray diff.

Reviewed By: @markw65

Differential Revision: D1261567