Completion: separate CompletionPrivate fields into sections

The fields are not renamed, they are just moved, and some comments are
added to explain them.

For the widgets, some IDs in the UI file are renamed, to have the same
name as the struct field, or to have a better name (the struct fields
will be renamed later in this case).
Completion: rename struct field window -> main_window

Now there are the main_window, and the info_window.
Completion: simplify the code for the "Details" button

Use the 'label' and 'image' properties of a GtkButton, instead of
reinventing the wheel.

It is a little less convenient for getting the mnemonic keyval of the
label.