DOMNodeList elements are accessible through array notation

Fixes #67949
Merge branch 'pr/846' into PHP-5.6

* pr/846:
  DOMNodeList elements are accessible through array notation
Updated NEWS for #67949
Merge branch 'PHP-5.6'

Conflicts:
	ext/dom/dom_properties.h
	ext/dom/nodelist.c
	ext/dom/php_dom.c
Copy all the arena allocated data from SHM to process memory at once
Directly use zend_string for php_implode/php_explode

Also drop some unnecessary zval separations and copies
Fix bug #68191: Broken reference across objects
Review a few more SEPARATE_ZVAL_IF_NOT_REF usages
Remove support for classes without class entries

get_class_entry must be non-NULL and return non-NULL.
Remove proxy object implementation
Remove get_class_entry object handler
Remove zend_get_class_entry function
Remove get_class_entry handlers in COM
Remove PDORow get_class_entry handler
zval must not be converted in place without duplication
Refactored DOMNodeList array dereferencing implementation
Merge branch 'PHP-5.6'

* PHP-5.6:
  Refactored DOMNodeList array dereferencing implementation

Conflicts:
	ext/dom/nodelist.c
	ext/dom/php_dom.c
Improved VM stack primitives for fast paths. Slow paths are not inlined anymore.
Remove Z_OBJ_CLASS_NAME_P

Doesn't make much sense anymore, now that get_class_entry is
gone.
Update get_class_name semantics

 * get_class_name is now only used for displaying the class name
   in debugging functions like var_dump, print_r, etc. It is no
   longer used in get_class() etc.
 * As it is no longer used in get_parent_class() the parent
   argument is now gone. This also fixes incorrect parent classes
   being reported in COM.
 * get_class_name is now always required (previously some places
   made it optional and some required it) and is also required
   to return a non-NULL value.
 * Remove zend_get_object_classname. This also fixes a number of
   potential leaks due to incorrect usage of this function.