Initialise struct pkg_foo *foo properly so that the pkg_foo iterator
works correctly.

Don't overrun the end of the format string when parsing formats.

Reliably detect when item_fmt or sep_fmt have been set from the format
string, and don't need to be defaulted.
Move alloc() / free() of struct percent_esc * up a level in the
function call tree -- reduce the number of alloc()/free() cycles.
Don't spin forever on an out-of-context problem: instead, pass the
incorrect format code through unprocessed.
Add %e -- package description
It's PKG_DESC not PKG_DESCR
Remove a load more unused local variables

Make printing pkg_message behave like all the other sting valued
items: ie print the tag (if tags are wanted) even if there is no
message to display.
pkg_printf() needs more args there.

Kill off some dead code when dealing with licenses.
Reformat the fmt[] array

Add a boolean field to fmt[] to indicate if the format takes a struct
pkg * or one of the sub types like struct pkg_dep *

Add %dk and %rk -- dependency lock status and requirement lock status.
Use the new %dk (dependency lock status) and %rk (requirement lock
status) formats.
Update tests due to adding %e, %dk and %rk