Merge Request on forked projects

The good:

 - You can do a merge request for a forked commit and it will merge properly (i.e. it does work).
 - Push events take into account merge requests on forked projects
 - Tests around merge_actions now present, spinach, and other rspec tests
 - Satellites now clean themselves up rather then recreate

The questionable:

 - Events only know about target projects
 - Project's merge requests only hold on to MR's where they are the target
 - All operations performed in the satellite

The bad:

  -  Duplication between project's repositories and satellites (e.g. commits_between)

(for reference: http://feedback.gitlab.com/forums/176466-general/suggestions/3456722-merge-requests-between-projects-repos)

Fixes:

Make test repos/satellites only create when needed
-Spinach/Rspec now only initialize test directory, and setup stubs (things that are relatively cheap)
-project_with_code, source_project_with_code, and target_project_with_code now create/destroy their repos individually
-fixed remote removal
-How to merge renders properly
-Update emails to show project/branches
-Edit MR doesn't set target branch
-Fix some failures on editing/creating merge requests, added a test
-Added back a test around merge request observer
-Clean up project_transfer_spec, Remove duplicate enable/disable observers
-Ensure satellite lock files are cleaned up, Attempted to add some testing around these as well
-Signifant speed ups for tests
-Update formatting ordering in notes_on_merge_requests
-Remove wiki schema update
Fixes for search/search results
-Search results was using by_project for a list of projects, updated this to use in_projects
-updated search results to reference the correct (target) project
-udpated search results to print both sides of the merge request

Change-Id: I19407990a0950945cc95d62089cbcc6262dab1a8
MR on Fork multiple fixes

-Disable observers post test run
-Allow db:seed_fu RAILS_ENV=test to be run more than once without error
-fix diffs_in_between, was passing in the default_options for grit, but grit in this case doesn't take options, fixed the test to actually fail if the incorrect diffs are returned
-make notes/commits render against proper project
-MR discussion file links should reference note's project
-Added tests for commit links on edit merge request
-fixes edit issues (canceling an edited mr, updating an edited mr)
-updates tests with checks for source code updates
-still forked_merge_requests.feature (project_forked_merge_requests) test not passing (commented out -- "stable" not being set)

MR API: error on bad target_project

-If the target project id is specified and it is not the same as the project the request is being made on (the source), and the it isn't a fork of that project, error out, otherwise use it as the target
-Fixes some busted (but hidden) test cases

Conflicts:
	app/views/merge_requests/show/_diffs.html.haml
	spec/features/notes_on_merge_requests_spec.rb

Change-Id: I20e595c156d0e8a63048baaead7be6330c738a05
MR on fork: Some cleanup, test updates

-The forked merge request test now tests it's componenets again, and seems to work every time (did this by reordering the branch updates so their is more time for update_branches to run) -- this could still technically fail, but after several runs it doesn't seem to.
-Removed todo in merge_request, pushed wrapping of grit down to the satellite
-updated action test to check flock status, made it nolonger pending
-moved all logging on failure to helper method in satellite
GITLAB-592

Change-Id: If0554ca35eedc3d3e8461f7d93d4b3939fa2cd75
Fix intermittently failing notification_service test

Change-Id: Ic23cb46901f8adc77943bf3cc79566587364e22a
MR on fork validation error

Wasn't setting fields so validations would fail

Change-Id: I0363c57bf6c8b9937cc1b4140d09071d7c5168c2
Rebase on master

Trying to retrigger travis
Change-Id: Ifd86fb4c6b2791ad176230254fbf69a9ade979fb
MR on fork: Email fixes, style fixes

-Removed many extra spaces I added
-Fixed email templates to be consistent/better looking

GITLAB-894, GITLAB-895, (GITLAB-858)

Change-Id: I35c1a8e0e22af7de26d54e5c3da987fa7bb3921e
Rebased on 6.0

-Had to do some minor test clean up as well

Change-Id: I8f378f1b5fe676d73b8691e870c11ca6def90cbf
Style changes from review with @randx

-Some changes around calling origional methods for !for_fork? merge requests. Other changes to follow

Change-Id: I009c716ce2475b9efa3fd07aee9215fca7a1c150
Update emails to describe path using for_fork?

Forked MR's will print

Project:Branch <source_project_with_path>:<source_branch> -> <target_project_with_path>:<target_branch>

Non forked MR's will print

Branch <source_branch> -> <target_branch>

Change-Id: I89399aec2e7fde8e4b64b110a48099a95ae4f038
Refactor merge api create

-Made the api method a little more readable
-removed some missed extra newline's

Change-Id: Ic38baafc813aaeda0a8b283f39916182c8ec37d5
Fix merge_requests_controller

-update new to be simplified (set values from parms via rails) instead of doing it by hand
-change def merge_request to look up the merge request against the current @project

Change-Id: I778c91b87c6da84b73f8f59013c27b74d290d8b1
Raise Error for diff_between/commit_between for non fork mr's in satellite

-Fixed tests to account for this
-Trigger update after update_branches for list:update selecting first commit, have it also trigger sha lookup

Change-Id: Ie4c3d4fbf57aeadd7d141d3704f4ea0f0684a7a5
Revert note.project references back to @project

-removed extranious space from new_merge_request_email.text.erb

Change-Id: I65314b3fe8f8442b4c30d311b96fbceddf240f42
Fix an issue with edits sending user back to @source_project

-Form was for @source_project rather then @project.
-add spinach test for edit submission on forked project

Change-Id: I807a5077608b7e910f4bc83c5d3e82c378f70a9e
Rebase on master

-Messed up part of the merge for _form.html.haml
-Probably need discussion about what the new/edit merge page should look like now that it involves projects

Change-Id: I77f3a12ab979578fb4420e0fac6e8bf3fd451fe1
Mention unofficial #gitlab IRC channel in README
display permissions as a table
Bump version of gitlab-shell to 1.7.0
Fix notifications to handle participants and mentions on commits too