chore(session): moves persistent login logic to service

This adds a persistent login service, which centralizes this logic and
documents the processes and legacy information.

Fixes #6631