Merge branch 'PHP-5.5' into PHP-5.6

Conflicts:
	ext/mysqli/mysqli_api.c
Merge branch 'PHP-5.6'
add info: empty strings are interned
Merge branch 'PHP-5.6'

* PHP-5.6:
  add info: empty strings are interned
Emit a warning in case of unallowed characters. Fix another place this
code is used - reuse
Merge branch 'PHP-5.5' into PHP-5.6
Merge branch 'PHP-5.6'
Fixes after merge
Merge branch 'PHP-5.6'
Remove unnecessary check

In case of an update the key already existed, so the next free
element can not change.
Add helper function for updating bucket contents
Make zend_hash_apply_deleter() void, to allow reuse

Also remove lies in the comment above the function. apply_deleter
is not safe against modification, if the modification involves
removing the next bucket.

Also modified the implementation of zend_hash_graceful_destroy()
to be fully graceful (the reverse variant already was).
Rename+move zend_hash_apply_deleter and reuse it

The interruption handling was normalized to wrap the entire deletion
operation (instead of leaving out the destructor call and/or the
deallocation) per the recommendation of somebody (don't remember who)
familiar with zend signals.

There is an always-inlined variant of the function for use in
the main deletion function, to ensure there is no performance
impact.
Merge branch 'PHP-5.6'
Revert "Add helper function for updating bucket contents"

Reverting this for now, because it would require further changes
thanks to the zend signals tsrms-but-only-sometimes awesomeness.
Merge branch 'PHP-5.6'
Merge branch 'master' of git.php.net:php-src
Merge branch 'PHP-5.6' of git.php.net:php-src into PHP-5.6
fix C89 compat
Merge branch 'PHP-5.6'

* PHP-5.6:
  fix C89 compat