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
Fix Error 500 when doing a search in dashboard before visiting any project
If a search turned up an issue, under certain conditions you would see this error:
```
ActionView::Template::Error (undefined method `path_with_namespace' for nil:NilClass):
6: - if issue.description.present?
7: .description.term
8: = preserve do
9: = search_md_sanitize(markdown(issue.description))
10: %span.light
11: #{issue.project.name_with_namespace}
12: - if issue.closed?
lib/gitlab/markdown/upload_link_filter.rb:36:in `build_url'
lib/gitlab/markdown/upload_link_filter.rb:31:in `process_link_attr'
lib/gitlab/markdown/upload_link_filter.rb:18:in `block in call'
lib/gitlab/markdown/upload_link_filter.rb:17:in `call'
lib/gitlab/markdown.rb:127:in `gfm'
lib/gitlab/markdown.rb:24:in `render'
app/helpers/gitlab_markdown_helper.rb:61:in `markdown'
app/views/search/results/_issue.html.haml:9:in `block in _app_views_search_results__issue_html_haml__4127460390996300432_59973760'
app/views/search/results/_issue.html.haml:8:in `_app_views_search_results__issue_html_haml__4127460390996300432_59973760'
app/views/search/_results.html.haml:20:in `_app_views_search__results_html_haml__589475855773452465_61761440'
app/views/search/show.html.haml:5:in `_app_views_search_show_html_haml___1852335078065998536_69780120'
```
Confirmed this is issue still happens in GitLab 8.4, and it also happens on GitLab.com. Here's how to reproduce:
1. Login in a new browser.
2. Enter a search term on the top right that will land a hit in the "Issues" (e.g. GitLab).
3. Click on "Issues" tab. You should get an Error 500.
The issue is that @project isn't assigned to anything.
See merge request !2110
New project button with filter in header.
Fixes#3943

See merge request !2165
New buttons
OLD

NEW

See merge request !2179
Fix method that ensures authentication token
Until now, `ensure_#{token_filed_name}!` method didn't persist new token in database.
This closes#4235.
See merge request !2185
Improve emoji picker
This request uses an emoji image sprite to show big set of emojis. The sprite has been made based one gemojione gem images. The categories are retrieved from https://github.com/jonathanwiesel/gemojione/blob/master/config/index.json as well.
Some categories are pretty poor, it can be extended in the future.
It's a first step on the way to improve picker.
The first implementation was using https://github.com/iamcal/emoji-data project, but there was huge incompatibility with gemojione emojis set and I had to drop that solution.

See merge request !2172
Make CI Lint form synchronous
This removes `remote: true` from CI Lint form, making it synchronous
form. This also removes some complexity related to displaying lint
messages.
View also has been updated, removed deprecated Bootstrap 2 tags.
Improved design.
See merge request !2171
Fix and test leave project display
The 'Leave this project' display on project page was broken. It was calling the method incorrectly, which returned `nil` and displayed nothing.
This fixes the display and also adds 2 different tests for it.
cc/ @jvanbaarsen @stanhu Please review and merge if you think it looks good. Thank you!
See merge request !2166
If a search turned up an issue, under certain conditions you would see this error:
```
ActionView::Template::Error (undefined method `path_with_namespace' for nil:NilClass):
6: - if issue.description.present?
7: .description.term
8: = preserve do
9: = search_md_sanitize(markdown(issue.description))
10: %span.light
11: #{issue.project.name_with_namespace}
12: - if issue.closed?
lib/gitlab/markdown/upload_link_filter.rb:36:in `build_url'
lib/gitlab/markdown/upload_link_filter.rb:31:in `process_link_attr'
lib/gitlab/markdown/upload_link_filter.rb:18:in `block in call'
lib/gitlab/markdown/upload_link_filter.rb:17:in `call'
lib/gitlab/markdown.rb:127:in `gfm'
lib/gitlab/markdown.rb:24:in `render'
app/helpers/gitlab_markdown_helper.rb:61:in `markdown'
app/views/search/results/_issue.html.haml:9:in `block in _app_views_search_results__issue_html_haml__4127460390996300432_59973760'
app/views/search/results/_issue.html.haml:8:in `_app_views_search_results__issue_html_haml__4127460390996300432_59973760'
app/views/search/_results.html.haml:20:in `_app_views_search__results_html_haml__589475855773452465_61761440'
app/views/search/show.html.haml:5:in `_app_views_search_show_html_haml___1852335078065998536_69780120'
```
This removes `remote: true` from CI Lint form, making it synchronous
form. This also removes some complexity related to displaying lint
messages.
View also has been updated, removed deprecated Bootstrap 2 tags.
Improved design.
Closes#4206
Allow account unlock via email
We see a lot of users get confused about what it means when your account gets
locked. Many try to reset their password and are still faced with a lockout.
With this change, users receive an email that allows them to unlock their
account immediately. The previous behavior where the account is auto-unlocked
after a time also still works.
See merge request !2049
Show git version on admin page
Before

After

gitlab-org/gitlab-ce#4077
See merge request !2101
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