Adds settings menu to the top for editting and leaving projects
@creamzy @skyruler @dzaporozhets
Menu contents depends on user's rights.
Fixes#4221




See merge request !2195
Dropdowns for clone. Star and Fork with new count areas. Star and Unstarred Works now
Fixes#2876 and #3482
Used existing styles. <br/>
Did not attempt to make pixel perfect as styles already exist. <br/>

See merge request !2156
Automatically fork a project when not allowed to edit a file.
Fixes#3215.
To do:
- [ ] Add tests
-----
## "Edit" button on file in a project the user does NOT have write access to

## Clicking will automatically create a fork

## When the fork has been created, the user is returned to the edit page on the original project with a notice

## The user cannot change the target branch and is informed that editing will start an MR

## Hitting "Commit changes" will commit and start an MR from my fork to the origin project

-----
## "Create file, "Upload file" and "New directory" buttons in a project the user does NOT have write access to

## Clicking any of these options will automatically create a fork

## When the fork has been created, the user is returned to the tree page on the original project with a notice

## Clicking "New directory" again will show the modal. The user cannot change the target branch and is informed that editing will start an MR

## Hitting "Create directory" will commit and start an MR from my fork to the origin project

cc @dzaporozhets @skyruler
See merge request !2145
Add JS validation for invalid characters in branch name
Fixes#3293
Demo:

See merge request !2122
A limited number of pages have defined their own descriptions, but
otherwise we default to the Project's description (if `@project` is
set), or the old `brand_title` fallback.
The image will either be the uploaded project icon (never a generated
one), the user's uploaded icon or Gravatar, or, finally, the GitLab
logo.
Don't create CI status for refs that doesn't have .gitlab-ci.yml, even if the builds are enabled
Fixes#3827Fixes#4157
/cc @grzesiek @dblessing
See merge request !2139
Do not display project group/name when issue and MR are in same project
I noticed that things seem a bit cluttered for related merge requests
when displaying the group/project name for every item, even when it's
in the same project.
For merge requests that are in the same project as the issue we probably
don't need to display the 'in group / name' bit.
See merge request !2141