Adds package caching to reduce download frequency.
Introduces a `PackageDownloadService` with memory caching to store downloaded packages,
identified by mission ID, for reuse. Uses concurrent locks to prevent race conditions during download.
Modifies the worker client service to optionally delete the package after sending,
allowing cached packages to be retained.