Merge Request on forked projects

I'm submitting this mostly for review -- I'm not sure what the process around that is.

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
- There are some tests

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:

- Satellites always destroy themselves, and recreate (I've still got some work to do there to make this actually true)
- Duplication between project's repositories and satellites (e.g. commits_between)


If possible could i get some feed back on the satellite issue -- I could spend more time making satellites work as they did and clean up remote's, it seemed pragmatic to just wipe them out and recreate them. 

I'll submit another PR with the satellites actually destroying themselves properly. If this isn't the way to go about this (i.e. submitting a PR to get feedback) please let me know.