Add an expect call to prevent random Spinach failure
This should help prevent getting the error:
```
Unable to find field "merge_request_title
```
This was happening probably because it takes some time after the "Compare branches" button is hit before the "New merge request" page showed up.
See merge request !882
Attempt to fix the "I should see that I am [un]subscribed" steps
Makes use of Capybara methods that wait. Hopefully this will fix the
random timing-related failures of this step.
See merge request !853
Reorder MergeRequestTabs constructor
The tab was being activated before we set the `[commits|diffs]Loaded`
variable, so even when the `/diffs` route is accessed directly, like
from the "Side-by-side" link, the tab was being loaded from its default
source.
Fixes#1887
See merge request !892
Fix downloading of patches on public merge requests when user logged out
### What does this MR do?
This MR makes it possible to download a diff patch on a public merge request when a user is logged out.
### Why was this MR needed?
An Error 500 would result when a user attempted to click on the "Email Patches" or "Plain Diff" button:
```
NoMethodError - undefined method `id' for nil:NilClass:
lib/gitlab/backend/shell_env.rb:9:in `set_env'
lib/gitlab/satellite/action.rb:20:in `in_locked_and_timed_satellite'
lib/gitlab/satellite/merge_action.rb:49:in `diff_in_satellite'
app/models/merge_request.rb:219:in `to_diff'
app/controllers/projects/merge_requests_controller.rb:42:in `block (2 levels) in show'
```
### What are the relevant issue numbers?
* Closes#1225
* Closes#1854 (dup)
* Closes#1858 (dup)
See merge request !872
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
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