CompletionModel: wipe out the current implementation

Keep the maximum for the new implementation.
There are also a few minor changes.
CompletionModel: separate functions into sections
CompletionModel: the new data structures
CompletionModel: new implementation
Free return value of gtk_source_completion_model_get_providers()

In select_provider(), the variable 'providers' was declared a second
time, that's why it's renamed to 'visible_providers'.
test-completion-model: remove the commented tests
Completion: remove begin/end delete signals

It was for performances reasons with the previous model implementation.
Completion: use a new model for each population

At the beginning of a population, we remove the model from the TreeView,
and we destroy it. A new model is created, which is set to the TreeView
only when the population is finished.

When the population is finished, we must also show the completion
window, which is normally done in on_row_inserted_cb(), but the
"row-inserted" signals are not emitted.