Discussions (a.k.a. Grouped Comments)

This revamps the merge request comments section to group related comments (on commits and diffs) and shows a little context.
There is also a lot of tidying up, fixing subtle deficiencies, inconsistencies and a few bugs.

* group comments based on commit, commit diff line, merge request diff line
* show context of embedded discussions
* make discussions collapsible
* fix icons and text for diff line links/buttons/form to be more consistent
* truncate diff context only to the relevant parts
* continuous loading only for the wall
* update styling for note actions
* allow previews and attachments everywhere
* improve attachments
* simplifying and cleaning CSS and JS

This is based on code, ideas and discussions from #1733. @kouno thanks again. :)

# WORK IN PROGRESS (don't merge yet)

TODO:
* allow hiding diff lines
* allow showing commit diff notes below mixed with commit notes
* more specs