Improve the audit logic. Fix the gdm_session_worker_get_username to cache the
latest username in the audit class. Then make sure to call this function
before auditing to ensure that username is always set. This fixes a problem
where audit would have a NULL value if it were obtained via PAM and not the
GUI.