Instance / group / project level serverless domains with SSL
## Description
We are working towards https://gitlab.com/gitlab-org/gitlab/issues/30151 and https://gitlab.com/gitlab-org/gitlab/issues/26202.
We decided to split these issues into a few smaller ones.
This issue is about being able to define a serverless domain on the instance / group / project level.
1. As an instance administrator, a group maintainer and a project user, I want to define a instance-wide serverless domain that will be available for everyone to simplify their Knative cluster creation / configuration
1. I want to be able to go through a wizard that will tell me how to configure this domain.
1. I want to be able to upload my SSL cert / key or use Let's Encrypt for this
1. I want to be able to add more than one domain.
These forms should be hidden behind a feature flag, until we resolve all the backstage works that needs to be done in GitLab Pages to support this.
## MVCs
1. just a single domain + custom certs. We would like to support this feature at the instance and project levels.
1. wizard about configuration
1. Let's Encrypt support
1. more than 1 domain
## First Iteration Proposal
Follow the same pattern as base domain:

- Add setting to admin area and allow user to set a domain. For example: `*.serverless.gitlab.io`
- Auto populate the Knative field on the cluster detail view (instance, group, or project level). For example: `root-example-project.serverless.gitlab.io`
- Allow the user to change the domain prior to installing Knative.
There is no need for an additional settings or checkbox to toggle between the default or custom domain.
## Tasks
### Frontend
* [ ] UI for creating domains, similar to existing Pages domains, includes SSL certificate and key, but can be created at instance, group, and project levels
### Backend
* [ ] Leverage existing data model used by Pages for domains, and store domain with provided SSL certificate and key in database for Pages to use
epic