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.

The test of is_empty() currently fails. It is either a bug in
CompletionModel, or either I didn't understand the second parameter of
is_empty()...