CompletionModel: split set_visible_providers()

This function was used for two things:
- show all providers, with a NULL list of providers (this is misleading,
  one can think that it will hide all providers);
- show only one provider, with the list containing only one element.

The code is easier to understand with two self-explaining functions:
- show_all_providers()
- show_only_provider()
test-completion-model: test show providers
test-completion-model: test clear()
test-completion-model: second populate

test_second_populate_same_order() is almost OK, an assert must be
commented.

test_second_populate_different_order() was known to fail, so it is
entirely commented.
test-completion-model: populate with several batches
test-completion-model: get_providers()
test-completion-model: n_proposals()
test-completion-model: some tests with iters