Fixes the SDL input source's icon and name lookups for controllers SDL can't confidently brand. Unknown-type pads no longer default to PlayStation glyphs, and STANDARD, XBOX360, XBOXONE, and NINTENDO_SWITCH_PRO now each get their own button name table instead of falling back to generic "Face South"-style text.
This is visible in the Qt Controller Settings binding list, and as icons in FullscreenUI's Controller Settings and save-state legend.
Fixes three related bugs that broke button icons and layout detection for XInput controllers:
- XInputSource::ConvertKeyToIcon checked for the wrong source type (SDL instead of XInput) and never resolved icons.
- SDLInputSource reused generic/unbranded icons for Xbox 360/One controller types instead of proper Xbox glyphs.
- InputManager::PreprocessEvent always queried the SDL source for controller layout regardless of which source produced the event, causing FullscreenUI to fall back to PlayStation icons whenever SDL was disabled.
Previously, ImGui would follow whichever pad bindings were currently active for gameplay, including per-game profile overrides. The UI's button prompts don't dynamically update to reflect this, so it could be confusing which bindings were actually in effect.
Menu navigation now uses each source's static, position-based table first (e.g. SDL's SOUTH/EAST/NORTH/WEST), falling back to the Shared/global map only for sources without one (DInput). Per-game profiles still never affect UI navigation.
We shouldn't use Feedback alone here as it would cause issues and trigger ValidateUsageAndFormat assert, use FeedbackTarget as that's the next best without uav.
When FullscreenUI shuts down, the cached vector of unsorted entries isn't reset. On re-entering FSUI within the same session, if the game list hasn't changed, the populate check thinks nothing needs updating and skips the rebuild, leaving the list empty.
Reset s_last_unsorted_entries on shutdown so the list rebuilds correctly on re-entering.