Switch to query-specific collection methods

This way it the purpose of the fetch calls is clearer.
Set path of the dialog view on open

Before we were setting it in the buildDialogTitle() method, which wasn't
very intuitive.
Set CommentsPerLineView.line in the constructor

Before it was set when the first comment was added, but we know the line
at creation, so it’s cleaner to set it then.
Add RowsView

It represents all the rows with code on the page.

Since we have few operations over rows, it sounds logical to extract
them in a separate view. The main element is all the tables.
Put the Rows instance of RowsView into use
Only add new comments to the current list

In 58c9df7ed9 we didn’t translate the code correctly and we were adding
all comments to all sections on the page.
Add RowView

Represents a single row and here we will keep all the operations
related to it: extracting file/line data, manipulating cells.