Bug: Enabled AI Catalog items blocks Project destroy
### About
We have an [`on_delete: :restrict`](https://gitlab.com/gitlab-org/gitlab/-/blob/1e04e4adb04c5e2893313237fdbc9e04b61d919b/db/migrate/20250706193901_add_item_id_fk_to_ai_catalog_item_consumers.rb
) which prevents us from deleting projects that have items with consumers:
### Problem
In the scenario where a project has published a public item to the catalog that has been used by another project, the project would now be blocked from deletion.
We don't want to block project deletion.
### Proposal
Instead we want to hook into the `Projects::DestroyService` and handle AI Catalog data in a way that supports project deletion, but does not break other customers' workflows.
When a project is deleted, and it owns any public `Item` records that have `ItemConsumer`s associated with _other_ projects:
- Unset the `project` association on the `Item` record (it will now be "owned" only be the organization)
- Soft delete the record
But if the project only owns `Item` records used by itself, do nothing to allow the deletion to happen and the FKs to clean up the data. This would require changing the FK to be a cascading delete. Alternatively, we might want to keep the current on delete restrict, but manually clean up the project owned data within the project deletion service.
The hook we need might be [`Projects::DestroyService::#destroy_project_related_records`](https://gitlab.com/gitlab-org/gitlab/-/blob/1e04e4adb04c5e2893313237fdbc9e04b61d919b/ee/app/services/ee/projects/destroy_service.rb#L39).
issue