Added a test case and cleaned up handling of null/empty values.
Added assertions to test case.
Got rid of unused test_input function.
Moved the storage/retrieval functions to a new class VCardDB as static
functions. Templating functions are now separated out.
Added additional storage/retrieval testcases.
Modified tests to compare before-and-after vcards for equality rather than
testing individual fields. Fixed a couple of issues causing equality tests to
fail.
Added constructor/destructor, field to store connection, related tests. All
functions still static.
Made store_whole_contact_from_vcard(..) non-static store(..).
Refactored store_contact_from_vcard(..) to non-static i_storeJustContact(..).
Refactored store_org_from_vcard(..) to non-static i_storeOrg(..), added
test case, and fixed bug related to null values.
Refactored store_address_from_vcard(..) to non-static i_storeAddress(..).
Added precondition assertions to i_storeOrg(..).
Refactored store_data_from_vcard(..) to non-static i_storeDataProperty(..)
and testcase.
Added a few additional assertions elsewhere.
Refactored store_note_from_vcard(..) to non-static i_storeNote(..) and added
testcase.
Refactored store_tel_from_vcard(..) to non-static i_storeTel(..) and added
test case.
Removed obsolete FIXME.
Refactored store_email_from_vcard(..) as non-static i_storeEmail(..).
Added dist/ to ignore list.
Refactored store_category_from_vcard(..) to non-static i_storeCategory and
added testcase.
Refactored fetch_vcards_from_db(..) to non-static fetchAll(..), updated
testcase and adjusted most testcases to perform a single fetch for simplicity.