[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