Add option to mirror an upstream repository.
Closes internal https://dev.gitlab.org/gitlab/gitlab-ee/issues/279
Depends on gitlab-org/gitlab-shell!29
To do:
- [x] Decide on what user should be the author of the activity feed events. The initial project creator perhaps? That makes sense for personal projects, but less so for group projects, where it's even possible that the creator has since left the team.
- [x] Write specs!
- [x] Write documentation
- [x] Port back relevant commits to CE: gitlab-org/gitlab-ce!1822
----
## Mirror status on project homepage

## Settings navigation item

## Mirroring settings

## Activity feed with new "pushes" (mirror updates)

I have yet to decide on what user should be the author of these events. The initial project creator perhaps? That makes sense for personal projects, but less so for group projects, where it's even possible that the creator has since left the team.
## Warning that branch has diverged from upstream

## Commits heading after failed update

Link send user to the mirroring settings if they are a project admin.
## Mirroring settings after failed update

## New project page

## Import form after failed import
(Screenshot outdated)

Shown when the initial import of a project fails, not when an update of an existing project fails.
cc @dzaporozhets @sytses @JobV
See merge request !51
Show specific runners from projects where user is master or owner
This fix for permission escalation when handling specific runners.
The users were allowed to assign runners from projects where they were guests.
See merge request !1809
Revert "Merge pull request #9812 from chrspeich/hide-tabs-lone-auth-provider"
This reverts commit 84999611d8, reversing
changes made to 0d9fb211f3.
See merge request !1805
Relative links in project README should point to default branch, not master
Relative links in the README shown on a project's main page currently always point to the "master" branch. This is a particularly obvious problem for projects that have no "master" branch, since the link points to a non-existent file.
This patch changes the relative links to instead point to the default branch.
Resolves#2707, #1134, #1852
See merge request !1801
refactor login as to be impersonation with better login/logout
Modifies the existing "login as" feature to be called impersonation.
This also adds:
* Application keep track of who is impersonating the user so they can revert back to the original user without having to log out.
* Stores the user profile via `HTTP_REFERER` so you get redirected back to the person you have impersonated once you stop.
## Screenshots:


See merge request !1702