Don't allow a deployment to be rerun after it's been approved
<!-- This template is a great use for issues that are feature::additions or technical tasks for larger issues.-->
### Problem
The current behavior of deployment approval is that an already approved deployment can be rerun after the approval is given. This may be not desired a concern both from a security/auditing standpoint as well as allowing the possibility of deploying older code to production.
### Proposal
<!-- Use this section to explain the feature and how it will work. It can be helpful to add technical details, design proposals, and links to related epics or issues. -->
Don't allow deployment pipelines to be rerun without getting the necessary approvals.
**[UX Flow](https://gitlab.com/gitlab-org/gitlab/-/issues/375512/designs/Final_Flow_of_Experience.png)** :sparkles:
### Potential iterations:
- Allow users to customize this as a setting for their protected environments.
- Show users the details of the prior approval when approving.
<!-- Consider adding related issues and epics to this issue. You can also reference the Feature Proposal Template (https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/issue_templates/Feature%20proposal%20-%20detailed.md) for additional details to consider adding to this issue. Additionally, as a data oriented organization, when your feature exits planning breakdown, consider adding the `What does success look like, and how can we measure that?` section.
-->
<!-- Label reminders
Use the following resources to find the appropriate labels:
- https://gitlab.com/gitlab-org/gitlab/-/labels
- https://about.gitlab.com/handbook/product/categories/features/
-->
issue