Add configure-time support for test coverage

Running configure --enable-coverage builds the library and test programs
with gcc's --coverage flag.
Don't use per-target CPPFLAGS unnecessarily

because that just makes the object file names silly and hard for
programs like ggcov to find.
Unit test dpl_dbuf_consume()
Fix bug in dpl_dbuf_consume()

Attempting to consume more bytes than are present, would incorrectly
return 0 instead of the number of bytes consumed.
Disable unused dpl_dbuf_*() functions

including the one I just spent time testing.
Add a unit test for long dict keys

which exercises some corner cases in the dict hashing code.
Unit test early return from dict iteration.
Unit test replacing a key in a dict
Unit test dpl_dict_remove()
Factor out some common code in the dict tests
Unit test dpl_dict_filter_{no_,}prefix()
Automatically remove .gcda files before a test run

Because the gcov instrumentation code accumulates counts in these data
files on every run, and we want each "make check" run to be its own set
of counts.
Add assert macros for checking pointers

notably dpl_assert_ptr_not_null().  And test the macros.
Use new pointer assert check macros
Unit test the lowered=1 feature
Fix bug in dpl_dict_add(lowered=1)

which was looking up the dictionary to see if there were any existing
matching entries without taking account of the `lowered' flag.  Given
the right input, this could incorrectly result in a dict with two entries
both of which mapped to the same lowercase key.
Mention dict test cases yet to be written

i.e. code found to be uncovered with ggcov.
Fix dpl_dict_add() OOM handling bug

which would incorrectly free() connected parts of the data structure if
a memory allocation failed when replacing an existing value.
Unit test the addrlist default port.
Unit test multiple adds to an addrlist