[feature/session-storage] Moved session interfaces and allow mix/match in session.php

PHPBB3-9733
[feature/session-storage] map_recently_expired callable drops $storage arg, becomes Closure

Since the underlying session storage has been split up into many possible
different implementations for different parts of it, simply passing in the storage
as part of the arguments for the function passed into the function map_recently_expired
is no longer going to cut it. So the callable becomes a Closure that can accept variables
from it's caller's scope, and therefore make use of the exact storage mechanism and functions
that it needs to operate.

Example Before:
    $db_user = $this->db_user;
    $del_user_ids = $this->db_cleanup->map_recently_expired($length, function($row, $storage) {
        $storage->update_last_visit(...);
        return (int) $row['session_user_id'];
    }, $batch_size);

Example After:
    $db_user = $this->db_user;
  	$del_user_ids = $this->db_cleanup->map_recently_expired($length, function($row) use ($db_user) {
        $db_user->update_last_visit(...);
        return (int) $row['session_user_id'];
    }, $batch_size);

PHPBB3-9733
[feature/session-storage] Minor cleanup and documentation correction

PHPBB3-9733
[feature/session-storage] Move interface functions

Moved interface functions so that they center around
the sql table that they represent. This makes writing
underlying storage easier because the kinds of actions
that you would perform on that data are all under the
same interface.

PHPBB3-9733