EZC: fix two assertions in ProxyArray
Make ALWAYS_ASSERT work

ALWAYS_ASSERT didn't do anything, perhaps because various assertions
were depending on debug mode being active, and would fail with a compile
error if it was not.

* Removed all assignment expressions from assert() invocations. Some
  were accidental (equality was intended), some were accidentally
  nonfunctional due to shortcut evaluation (true || foo), and the rest
  were incompatible with ALWAYS_ASSERT.
* Introduced debug_assert() as a shortcut for an assert() which is only
  done in debug mode.
* Replaced a not_reached() call with a more informative assertion.
EZC: fix rename of ezc_array_set() to ezc_array_val_set()
EZC: add test for modification of array passed by reference

To test parameter copying changes in commit "EZC: fix constness issue in
zend_hash_*"