Fix some issues with password prompting
- Don't prompt for missing passwords from deep within the engine, ensure it is handled by the controller instead
- Fix some crashes prompting for passwords in the controller
- Fix a deadlock when notifying engine of updated credentials
- Handle not remembering passwords properly