Add automatic token refresh with centralized session persistence
When the PDS returns ExpiredToken, the client automatically refreshes
the session using refresh_jwt and retries the original request. Session
persistence is handled once in the dispatch layer (main.rs) rather than
in each command — Execute trait now returns Option<Session>.