CompletionModel: simplify second parameter of is_empty()

Instead of having double negations like "!invisible", it's easier with
"only_visible".

Add also a comment, because the meaning of the parameter is not obvious.
test-completion-model: test thoroughly is_empty()

Create a basic provider.

Create a utility function for creating proposals. As the unit tests will
be written, there will be more elaborated utility functions, and maybe
the current code for is_empty() will be simplified.

There is currently a bug in is_empty(), that's why two tests are
commented (with "#if 0" to easily see later the commented tests). It
will be fixed in the new implementation of CompletionModel.
test-completion-model: test get_visible_providers()
test-completion-model: test "simple" populate
test-completion-model: test set_visible_providers()