Create models for container registry tag immutability feature

Context

Related to Container Registry: Tag immutability feature (&15139 - closed). See the epic description for additional context as well as an overview of the overall implementation plan.

Task

We need to create the require model(s) in Rails to accomodate the immutable tag protection settings associated with a Project.

We're starting by applying the same settings to all container repositories within a project, but we don't rule out allowing to apply different settings to different container repositories in the feature. Within possible, we should develop these models in a way that will allow us to extend them easily towards this direction in the future.

This is similar to what was done in https://gitlab.com/gitlab-org/gitlab/-/issues/499869 for protected tags.

Implementation Plan

We will be using the existing container_registry_protection_tag_rules but create rules that have null minimum_access_level_for_push and minimum_access_level_for_delete. Given this difference, we should distinguish protection rules vs immutability rules in different parts of the code where these rules are used.

In addition to adding the distinction, this issue also includes creating issues, where necessary, when the tag rules are evaluated.

Edited by Adie (she/her)