Refactors the game list scanning code to use std::filesystem instead of custom
directory iteration functions. Main changes include:
- Replace Common::FS directory iteration with std::filesystem iterators
- Split game file processing logic into separate ProcessGameFile method
- Improve error handling with try-catch for filesystem operations
- Simplify control NCA metadata extraction
- Use more modern C++ features and cleaner code organization
This change should improve maintainability and reliability of the game
scanning system while potentially offering better performance through
native filesystem APIs.