Use a more robust keychain class for auth
Implicitly release user
Support delayed app termination so local changes have a chance to save
Update projects to include missing files