Add create_sid to session_set_save_handler and SessionHandler

A lot of code already existed to allow a custom create_sid handler, but
lacked a specific implementation.

Therefore I have added a 7th (optional) argument
session_set_save_handler, to allow a user function to be supplied for
session id generation.

If a create_sid function is not supplied, the default function is
called in its absence to preserve backwards compatibility.

Likewise create_sid only added to SessionHandler class, and not the
interface to maintain backwards compatibility. If the result is not
overridden, the default is called.
Tests, fixes and optimisations

* Amended existing tests to cater for new functionality.
* Implemented fixes and optimisations recommended by NikiC
* Added create_sid to the registered interface. This was breaking
tests. It also now breaks BC for people implementing the interface
directly instead of extending the class.
Merge PR 109 - Add create_sid to session_set_save_handler and SessionHandler

Allows user session handlers to create session IDs by adding an optional
7th argument to session_set_save_handler() and a create_sid() method
to SessionHandler.
BC fix for PR 109 merge - create_sid() method in SessionHandler

Creates a new SessionIdInterface and moves create_sid() into it, so existing
handlers implementing SessionHandlerInterface don't require create_sid().
SessionHandler still includes the method so the default mod can be called, but
now implements both interfaces.

Also added several more tests for this feature.
Update NEWS
Fix bug #62535 - $_SESSION[$key]["cancel_upload"] doesn't work as documented

When uploading multiple files, the array in the session where the progress
data is stored (and cancel_upload key is set) was overwritten whenever the
progress data was updated, so pending uploads would proceed anyway.
Merge branch 'PHP-5.4' into PHP-5.5

* PHP-5.4:
  Fix bug #62535 - $_SESSION[$key]["cancel_upload"] doesn't work as documented
Merge branch 'PHP-5.5'

* PHP-5.5:
  Fix bug #62535 - $_SESSION[$key]["cancel_upload"] doesn't work as documented
  Update NEWS
  BC fix for PR 109 merge - create_sid() method in SessionHandler
  Tests, fixes and optimisations
  Add create_sid to session_set_save_handler and SessionHandler