This fixes issue #417 where autoupdate installer files were not deleted
on macOS, leading to accumulation of old installers.
Key changes:
- Store update files in application-specific directory
- Clear update files directory on every app launch
Other supporting changes:
- Refactor file system operations to be more testable and reusable
- Improve separation of concerns in directory management
- Enhance dependency injection for auto-update logic
- Fix async completion to support `await` operations
- Add additional logging and revise some log messages during updates