[WIP] Resolve MR conflicts from web interface.

Fixes AMR http://feedback.gitlab.com/forums/176466-general/suggestions/5590496-resolve-any-merge-request-conflict-from-the-web-in

When there are conflicts it shows:

![screenshot from 2014-07-21 17 02 05 gitlab resolve here](https://cloud.githubusercontent.com/assets/1429315/3645227/583b6906-10e8-11e4-93dc-810a19b9c137.png)

Then under the `conflicts` URL, there is an AJAX tab like "Changes":

![screenshot from 2014-07-21 17 23 40 gitlab resolve conflicts tab](https://cloud.githubusercontent.com/assets/1429315/3645505/14386436-10eb-11e4-98a2-69095b48562f.png)

When done, user clicks on the "Resolve conflicts and merge pull request" button at the bottom to finish.

Detail of one of the conflicts:

![screenshot from 2014-07-21 17 26 13 gitlab resolve detail](https://cloud.githubusercontent.com/assets/1429315/3645535/64850fd4-10eb-11e4-8627-24ba14af6f24.png)

For each conflict, user must select one of 4 radio boxes: `ours`, `base`, `theirs`, or `custom`.

`ours`, `base` and `theirs` will contain fixed values parsed directly from `git checkout --conflict=diff3`. Bytes that changed between `ours` and `base` and `theirs` and `base` are highlighted like in the diffs with `idiff` spans by Diffy. 

`custom` will use the value of the textarea for a custom resolution. Its value defaults to `ours` which is a reasonable starting point for custom edits.

It is currently not possible to modify parts of the text outside of the conflict: one web UI workaround would be to leave them there, choose ours, merge the MR and only then those points by editing.

Tell me if the concept is OK so I can proceed do the backend.
Never use `unless` with `else`. Rewrite these with the positive case first.