LEMONdB._get_metadata(): raise AttributeError if key does not exist
Update LEMONdBTest.test_set_and_get_metadata()
_add_metadata_property(): use a higher-level AttributeError message
Update LEMONdBTest.test_metadata_properties()
Update PreferencesDialog.__init__() — catch AttributeError
Raise AttributeError for nonexistent metadata properties

Now that the METADATA table uses a BLOB data type, returning None when
the key does not exist may lead to confusion — it may also be the case
that the key is there but stores a None, and there would be no way to
tell the two scenarios apart. It's better to raise AttributeError, the
exception normally used when an attribute reference fails.

This merges branch 'metadata-properties-AttributeError'
Add LEMONdB._del_metadata()
Rename LEMONdBTest.test_set_and_get_metadata() — and update it
Add deleter function to _add_metadata_property()
Update LEMONdBTest.test_metadata_properties()
Merge branch 'add-metadata-properties-deleter'