Merge when build succeeds
### What does this MR do?
Adds a button to a MR when the build/ci is running so it can be merged when/if the build is successfull.
### Are there points in the code the reviewer needs to double check?
English spelling and whether or not the grammer is correct.
### Why was this MR needed?
When you expect its all good, and don't want to revisit the current MR it can be accepted allready.
### What are the relevant issue numbers / Feature requests?
Fixes#2640 -- although `Merge if green` is replaced with `Merge when the build succeeds` the general idea is the same.
### Screenshots (if relevant)





### Further considerations
What if there are minor things needed solving, e.g. Rubocop, the current implementation will reset the approved status of the MR. It might be a consideration keep the approval for team member, or even guests. This would require an extra option in the Admin screen, though might add extra value.
#### TODO
- [x] Docs
- [x] Specs
/cc @DouweM @rspeicher
See merge request !1729
Introduce CI documentation for services and languages
This introduces guide for PHP, a bunch of services (databases) and cleans up some docker references.
With this there are bunch of example projects in https://gitlab.com/groups/gitlab-examples.
/cc @JobV @axil
See merge request !1917
Add Builds tab to MR detail page
## Before

## After

Fixes#3907
See merge request !2016
Make tab target selectors less naive
Prior, any of the specified IDs could have been hijacked by a table of
contents header, breaking the tab functionality. For example, a `##
Notes` header would get the id `notes` and prevent the Discussion tab
from being activated.
Closes#3908
See merge request !2023
Prior, any of the specified IDs could have been hijacked by a table of
contents header, breaking the tab functionality. For example, a `##
Notes` header would get the id `notes` and prevent the Discussion tab
from being activated.
Closes#3908