Add a system note and update relevant merge requests when a branch is deleted or re-added
If a branch is deleted with an open merge request, amended offline, and then pushed again,
GitLab doesn't bother to update the merge request even though the last commit ID and/or
code may have changed. This MR ensures that each push will update any relevant merge
requests and adds a system note if this happens as well.
The new messages look like:

Closes#2926
See merge request !1601
Change "+" icon under "Files" section to have three options:
* Create file
* Upload file
* New directory
Upload file is no longer accessible from the "Create file" page.
Users can now select a target branch in upload file as well.
Closes#2799: Fixes a bug where file modes were overwritten after a commit
Closes https://github.com/gitlabhq/gitlabhq/issues/8253: Existing files
can no longer be overwritten in the "Create file" section.
Closes#2557
Create a "destroyed Milestone" event and keep Milestone events around in the DB for posterity
Also fix issue where destroying a Milestone would cause odd, transient messages like "created milestone" or "imported milestone".
Now if a milestone is destroyed, at least it will indicate in the activity feed even if it's not clear which milestone was destroyed:

Closes#2382
See merge request !1227
for posterity.
Also fix issue where destroying a Milestone would cause odd, transient messages like
"created milestone" or "imported milestone".
Add "in" preposition when creating and destroying milestones
Closes#2382
Refactor upload and replace functionality
Rename file and move CSS
Fix typo
Make dropzone a div
Remove unnecessary file
Change color of "upload existing one"
Add missing changes
Import forked repositories asynchronously to prevent large repositories from timing out
Preserve synchronous mode of adding a repository since some tasks (e.g. restore/check) require the former.
One side bug fix is that the `ProjectCacheWorker` is also run, updating the repository size and commit numbers properly. Previously all the values were set to 0 when a project were forked.
* Closes#2388
* Closes#2400
See merge request !1231