EZC: Fix count() and conversion to boolean of ProxyArray

Fix JIT versions of count() and conversion of array to boolean, so
that they work with ProxyArray. In both cases, duplicate the logic in
ArrayData::size() -- if the sign bit of the size field is unset, use
that field, otherwise call vsize().

The resulting generated machine code for conversion to boolean is along
the lines of:

  mov    0x4(%rdi),%eax
  test   %eax,%eax
  js     0xf80049b
  setne  %al

where 0xf80049b is the slow path. This is similar to the machine code I
previously reported for ArrayData::size() in code review of 1717e028f18
(see #3065).

Also fixed the non-JIT version of conversion to boolean.

Added test case which previously failed. Amended empty-globals.php test
which now actually works instead of being a "deliberate mistake".