Completion: set Details button sensitivity

When there are no extra info available, set the Details button as
insensitive, and hide the info window.
Completion: hide bottom bar in some cases

If there is only one provider, the label "All" in the bottom bar (on the
right) is useless.

If there is no extra information, the Details button is useless.

When both widgets are useless, we hide the bottom bar.

The main completion window has always the same size, so when the bottom
bar is hidden, the GtkTreeView is bigger.
Completion: add a comment
Completion: use a CompletionInfo for the main window

Now, to shrink the main window, we only have to shrink the child widgets.
The window will be resized automatically.

But for the moment the main window has still a fixed size.
Completion: move utils functions in CompletionInfo

Those functions are used only by CompletionInfo now.
Completion: move remaining utils functions

The remaining utils functions were used only in Completion.