Add create_sid to session_set_save_handler and SessionHandler

This patch allows the provision of a user supplied session id generation function.

Even though the session id generation can be tweaked with ini file options, they do not really afford the level of customisation you would expect for a "custom session handler", and in some cases add a lot of processing overhead (due to choice of hash function), or undesired results (selecting 6 bits per character gives sid values that will be automatically url encoded)

A lot of code already existed to allow a custom create_sid function, 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 has only been added to SessionHandler class and not the associated interface, to maintain backwards compatibility. If the result is not overridden, the default is called.