Disable changing of target branch in new merge request page when a branch has already been specified
### What does this MR do?
This MR prevents a user from changing the target branch inside a new merge request page if the target branch has already been specified (e.g. from the shortcut in the activity feed). A link to "Change branches" is provided to allow the user to do this properly.
### Why was this MR needed?
If a user attempted to create a merge request from a shortcut with a pre-specified target branch (e.g. `master`), the dropdown would suggest that the user could change the branch. However, this did not actually work due to duplicate data elements (see #1830 for more details), and the target branch would always be set to the original, default branch. This would lead to confusion, potentially causing an improper merge request to be created.
### What are the relevant issue numbers?
Closes#1830
### Screenshot

See merge request !846
Fix Error 500 when one user attempts to access another's personal, internal snippet
### What does this MR do?
This MR fixes an Error 500 that occurred if one user tried to access another's personal, internal snippet. Steps to reproduce:
### Why was this MR needed?
1. Go to `<hostname>/snippets/new`.
2. Select "Internal".
3. Create a snippet. Save the URL (e.g. `<hostname>/snippets/20`)
4. Logout and sign in as another user.
5. Go to the URL in step 3.
### What are the relevant issue numbers?
Closes#1815
See merge request !854
Refactor and spec line highlighting Javascript
- Replaces the fragile Spinach tests for this feature with Jasmine tests
- The "Don't scroll the page when we click a line number" behavior now works as expected
See merge request !820
Fix 403 Access Denied error messages when accessing Labels section in a project
This would occur if the project's issues or merge requests features were disabled. The change in 9bcd36396b caused `can?(current_user, :read_merge_request, project)` to be false if the merge request feature were disabled, so `authorize_labels!` needs to be changed accordingly.
Closes#1813
See merge request !836
Fix duplicate 'Email has already been taken' message when creating a user
devise :validatable and validates uniqueness set on the user email field cause 2 validations to fire when creating a new user with an email address already in use, Issue 6123
@stanhu Thanks for your input on merge request 807, I'll close that one in favour of this as I have added tests
See merge request !817
Support commenting on a diff in side-by-side view
### What does this MR do?
This MR adds support for commenting on a diff in side-by-side (aka parallel) view. It also fixes a JavaScript bug (see !779) when the comment button is clicked on a line that already has a comment.
There is an existing bug where the comment count is not updated when a new comment is added. I'll send a MR for that later.
### Why was this MR needed?
Commenting only worked in "inline" mode. Often the side-by-side view is more conducive to writing comments.
### What are the relevant issue numbers?
Closes https://github.com/gitlabhq/gitlabhq/issues/9283
### Screenshot

See merge request !810