Fix issue where every image appears twice in gallery on Windows systems
due to case-insensitive filesystem and path handling differences.
- Deduplicate files when searching with both lowercase/uppercase extensions
- Use pathlib.as_posix() to ensure forward slashes in URLs on all platforms
- Add normalized path tracking to prevent duplicate file collection
The root cause was:
1. Files were found twice (once for *.png and once for *.PNG) on Windows
2. URLs with backslashes caused path inconsistencies
Fixes gallery showing 1922 images when only 961 files exist on disk.