DKR-R mod library website workflow update

FTP picker correction (r3):
- Fix /v1/assets returning service_error when opening existing FTP files.
- Replace the six-part compound SELECT with batched smaller queries compatible
  with D1; retain All / Not in Mod Library for packages and images.
- Add a full Worker regression test using Cloudflare's local D1 runtime.
- Worker-only update from r1/r2; workflowRevision is now 20261023-2.

Correction r2: declare optional batch draft ID/revision during construction so
the Worker editor's type checker accepts both properties. Behavior is retained.

Fixed consecutive file uploads and stale image selection between listings.
Added image/package replacement, removal, clean form reset and optional defaults
for Publish and add another. Staff publication now uses consistent permissions.

Both FTP file pickers have All and Not in Mod Library filters. Current releases,
older releases, archived listings, saved catalogue drafts and saved batches count
as associated. Matching uses the full file address, including folder identity.

Added a bulk workspace for up to 50 entries per batch, local files or existing
FTP packages, manual/suggested artwork matching, shared metadata, sequential FTP
uploads, per-entry results, publication review, saved batches and recovery.

Transient upload failures retry five times before stopping for attention.
Confirmed server offsets are reconciled before retrying a chunk.

Legacy Mods is displayed as Vehicles on the website. Its existing category ID,
FTP folders and launcher behavior are preserved.

Website/API only. No launcher changes or storage migration.
