Avoid glist to transfer completion data to the completion.c.

The completion asked the required components to spit out the list of
completion items to make a GtkListStore model and fill it with the data and to
free the list. Now we let the component like history, bookmark or setting fill
in the completion items self, which avoids unneeded list preparation and
memory allocation.