osdc/Objecter: fix resource management

The refactor introduced various reference leaks, and
lacked cleanup in shutdown.

Things done here:
 * Reinstate _recalc_linger_op_target, which was accidentally
   disabled and let to freezes in notify() (#9112)
 * Make reference counting on OSDSessions much more explicit, using
   put_session and get_session everywhere
 * Add assertions in ~OSDSession and ~Objecter that the various
   maps of operations have been emptied.
 * Reassign ops away from closing session to homeless session in
   close_session()
 * Delete/deref all the ops from the objecter-wide maps of operations
   in shutdown()

Signed-off-by: John Spray <john.spray@redhat.com>