Begin unit tests of CompletionModel
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()

There is a new basic provider and a utility function for creating
proposals.

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).
test-completion-model: test get_visible_providers()
test-completion-model: test a "simple" populate

Create several providers with associated proposals, populate them in a
CompletionModel, and check whether the CompletionModel correctly
contains the providers.
Add code coverage support

New configure option: --enable-code-coverage
New make target: check-code-coverage

lcov must be installed.

*.gcda and *.gcno files are generated, add them to CLEANFILES.