Huge rewrite of the code: $session->get, ->set etc. do not read from
store as it's called anymore. Session is instantiated in the request
initialization, and committed to the data store in the finalization
phase.
This is more "normal" in terms of web application programming to read,
handle and commit session; imagine you have two concurrent requests
updates multiple keys with multiple ->set() call: the previous
implmentation would update one key from a request and another key from
another. That said, we *might* still need some kind of locking if we
want to provide stricter race condition guard for concurrent requests
with the identical session ids.
Deprecated lots of methods like ->persist, ->delete,
->get_session_id_from_request and changed the API params for ->fetch,
->store etc. Store modules need to be updated but the changes are not
so big.