Honor "squash!" in merge requests
<!--IssueSummary start-->
<details>
<summary>
Everyone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards.
</summary>
- [Close this issue](https://contributors.gitlab.com/manage-issue?action=close&projectId=278964&issueIid=23730)
</details>
<!--IssueSummary end-->
Related to https://gitlab.com/gitlab-org/gitlab-ee/issues/212
When using `--autorebase` `squash!` commits behave differently to `fixup!` commits because a squash combines two commits changes including commit message, and should allow the person squashing the commits to review and modify the commit message.
We should support both in a manner consistent with Git.
### Proposal
If a commit contains `squash!` commits, the user should be shown a prompt to review the commit messages of the commits that will be squashed and be able edit them.
Example:
```
# This is a combination of 3 commits.
# The first commit's message is:
changed my name a bit
# This is the 2nd commit message:
updated README formatting and added blame
# This is the 3rd commit message:
added cat-file
```
### Links / references
- https://git-scm.com/docs/git-rebase#git-rebase---autosquash
- https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History
issue