Bitmap disposal (6 files):
- SlotModel.SetImage: dispose old Avalonia Bitmap + input SKBitmap
- PKMEditorVM: dispose old SpriteImage, LegalityImage, BallSprite
and intermediate SKBitmaps on every update
- SAVEditorVM: dispose old BoxWallpaper + SKBitmap on box navigation
- WondercardVM: dispose old GiftSlotModel.Sprite on refresh
- QRDialogVM: dispose intermediate SKBitmaps during QR generation
- Added ToAvaloniaBitmapAndDispose helper for owned SKBitmap conversion
Concurrency:
- MainWindowVM: add _isLoading guard to prevent concurrent LoadFileAsync
calls from drag-drop or rapid Open clicks
Money clamp:
- Trainer8/8a/8b/9/9a: clamp Money to sav.MaxMoney on save
(was allowing values exceeding game maximums)