When signing in, the Sign In button is not always in the view hierarchy, meaning error alerts weren't being shown until the next time the button appeared.
Like xcodes, storing the username in defaults so we know which item to look up in the keychain later. This also fixes the Xcode list update logic to not only validate the session but login with saved credentials if it fails.