Plugin generation jobs now execute end-to-end

Packshot jobs submitted through the Plugin Integration API now complete in cg-worker, deliver the result over webhook, and surface the rendered image at a Supabase Storage URL.

Generation jobs submitted via POST /api/v1/plugin/jobs and POST /api/v1/plugin/jobs/batch are now picked up by cg-worker and processed end-to-end. The job's settings payload — including the new optional product metadata fields (product_name, product_specific_category, product_side, product_general_category) — is forwarded to the worker, normalized through a single sharp pass per source asset, sent to the chosen image provider, and the result is uploaded to plugin_assets/outputs/<job_id>.<ext>. The corresponding webhook event (job.completed or job.failed) is enqueued automatically and delivered with the installation's HMAC signature.

This release also fixes two pre-existing issues for plugin callers: per-job settings were previously silently dropped, and the worker was waiting up to 30 seconds for the next idle nudge to start work. Both paths now run immediately after order creation.