Create constructor, destructor and accessors for struct pkg_abstract,
and integrate into struct pkg.
Insert abstract metadata key+value pairs into struct pkg as read from
+MANIFEST
Add code to load abstract metadata into struct pkg from database

Factor out code for running sqlite prepared statements returning two
char* values per row from pkgdb_load_options() and
pkgdb_load_abstract_metadata() into new load_key_val() function.
Add abstract metatdata to emitted package manifests
Add the iterator function for accessing the list of abstract metadata
k-v pairs.

Fix typos.
Insert abstract metadata into local.sqlite

Keep comment with the code it refers to

Some tidying to respect style(9) better.
Supply enough args to match all the %Q formats in the SQL string.
Add the capability to query abstract metadata for packages via pkg
{info,search,query,rquery}
Calling it 'abstract metadata' doesn't really do it for me.  Change to
'annotation' everywhere, because that's a much better description.
Update the schema version numbers
Add pkg_delannotation()

The schema etc. will only work if the key is unique for each annotation.
Add pkgdb_{add,modify,delete}_annotation()

Debugging
New verb: annotate -- add/modify/delete arbitrary key => value style
annotations of packages
Load key and value, not the key twice
Return EPKG_WARN if the annotatation add/modify/delete didn't affect
one row.  In principle this could flag for an annotation affecting
several rows, but the SQL can only affect 0 or 1 rows.

In effect, you get EPKG_WARN if you try and add an annotation that
already exists, or delete one that doesn't exist.  'pkg annotate' will
register this as an error, but carry on and apply the annotation to
all requested packages rather than aborting.

Modify would have to go wrong in a weird way to return EPKG_WARN, so
'pkg annotate' treats EPKG_WARN there eqivalently to EPKG_FATAL.
This file should contain the man page.
Use the new query_tty_yesno() function.
Generally change annotation key -> tag

Reword various messages more felicitously using the new 'tag' idea.
Missed a kv -> tv change.