EZC: add fixme for zend_call_method
EZC: style cleanup

* Rename camel-case files to lower case, per convention
* Put custom classes and functions into the HPHP namespace, instead of
  randomly distributed between HPHP and the root namespace
* Use tl_ prefix for variables defined with __thread, per convention
* Put local helper RL() in an anonymous namespace
* Rename ZendRequestLocalList to ZendRequestLocalVector, and fix
  related uses of the word "list" to mean "vector". The terminology was
  probably borrowed from zend_list.c, but even zend_list.c names its
  storage type "HashTable". Perhaps EG(regular_list) was initially
  implemented as a linked list, but later was migrated to a HashTable.
  There's certainly no rationale for allowing the misnomer to leak into
  zend_objects_API.cpp.
* Move zend_handle_cpp_exception() to anonymous namespace. It is an
  HHVM-specific helper.
EZC: implement free_storage and clone handlers

* Move object bucket store to its own class
* Implement storage of dtor/clone etc. function pointers as in Zend, instead
  of just storing a single void*
* Call free_storage and clone handlers as appropriate
* Make m_handle match the handle type in the Zend headers
* Fix singleton style in ZendExceptionStore to allow getInstance() to be
  inlined
* Add tests
* Add php_printf(), required by tests
EZC: replace multiple skipif files with config.skipif
Remove unused function ArrayIter::zSecond()

Unused since my commit "EZC: Fix hashtables and resources"
EZC: Move ZArrVal and friends to the HPHP namespace
EZC: remove unused variable
EZC: fix proxying in zBoxAndProxy()

* Don't proxy arrays that are already proxies, that's inefficient
* Make a copy of the inner array prior to proxying it. It's necessary to
  copy arrays to provide the necessary semantics, and it was previously
  done in ZArrVal, but ZArrVal only has access to proxy arrays, and it
  is difficult for an external caller to tell whether the inner array
  has refs.
* Make copies of static arrays, as well as ones with multiple refs.
  Modifying static arrays is not polite -- added test case which
  previously failed.
EZC: fix constness issue in zend_hash_*

Fix the issue identified by jdelong regarding modification of array
elements without proper COW handling:
* Use MArrayIter for all iteration, instead of integer positions. This
  allows modification of the value references.
* In ProxyArray, store the inner array inside a RefData, so that
  MArrayIter can find the inner array via the RefData.
* Make the RefData mutable so that it can be modified by read
  operations.
* Now that the RefData is mutable, reseatable() can be called on a const
  ProxyArray. But this is somewhat awkward when reseatable() passes
  through its return value -- the constness of the return value would
  have to match the constness of the parameter. Make it return void
  instead.
* Implement ZEND_HASH_APPLY_REMOVE -- trivial now that MArrayIter is
  used.
* Unimplement zend_hash_move_backwards_ex() on an external cursor --
  MArrayIter does not implement reverse iteration.
* Add test for modification of array passed by reference
Update third-party submodule ref to point to Wikimedia clone
Comment out body of MCGenerator::recordBCInstr()

Per <https://github.com/facebook/hhvm/issues/2712#issuecomment-43815708>