Update the xmp-model widgets in case values have been already set.

This commit makes use of the persistent XMP metadata parasite. The
editor rereads the parasite and updates the widgets with the current
attached XMP data.
Revert "Default XMP_TYPE_LANG_ALT to "x-default" according to spec."

This reverts commit a4ccfcee72e13228ced79185d1116c846df63892, because
the encoder needs to generate XMP data with attributes and their
language code if they're set in the model. This commit was hiding the
problem, that the xmp_model_entry widgets changed the raw value in the
tree model and set a wrong type of value therefore overwriting important
data.
Bail out if the property value is faulty.

This usually shouldn't happen, but if the value is corrupt, the
metadata-browser shouldn't just crash.
Use a general function to set raw values in the XMPModel.

The XMPModel only provided setting scalar values of XMP_TYPE_TEXT where
as for most schemas we need to set different types. The
xmp_model_set_property method tries to address that to set values of
various schema types in the model.
Reuse the xmp_model_set_property function by the xmp-parser.

The parse can now reuse the xmp_model_set_property function for
XMP_TYPE_TEXT and XMP_TYPE_LANG_ALT properties to avoid code
duplication.
Refactored xmp_model_set_scalar_property to use xmp_model_set_property
New function: xmp_model_find_xmptype_by

New function to return an XMPType. This is needed for widgets to
determine which raw value has to be set.
New function: xmp_model_get_raw_property_value.

This function returns the raw value from the model. This is needed for
the widget to be able to manipulate the property value depending in it's
XMPType.
Use the new set_property value.

We can't set the scalar value, as the value we're manipulating is not of
type TEXT
Bootstrapping unittests to test the XMPModel.
Added tests to test setting and getting scalar properties.
Added test for returning (raw) values.
Block changed signals from the XMPModel.

When setting properties from our XMPModel widget, avoid circular
updating by subscribed changed events from the XMPModel.
Simple parser test to read from a file with XMP metadata.

This test should be a base to test parsing property types into the
XMPModel.
xmp_model_set_property now handles XMP_TYPE_TEXT_(SEQ|BAQ)

Refactored the deserialisation of XMP_TYPE_TEXT_(SEQ|BAQ) types from the
parser into the xmp_model_set_property function to reuse this code. This
is important to deal with widgets which set eg. DC creator.
New test to test the xmp_model_find_by function
Revert "Refactored xmp_model_set_scalar_property to use xmp_model_set_property"

This reverts commit 82b2a949c0470ec9dcf9621ca690c3e4c3046399. The reason
for this revert is, because I think it is easier to operate on the
string representation of the value while the user is changing it in the
editor. If the XMPModel is serialized again, we have to make sure we
merge the changed value with the raw value. In this way, we can also
make sure to keep the raw value as it was during import time.
Allow to set any type of property via xmp_model_set_scalar_property

This makes it easier for widgets to simply manipulate the string
representation of the set raw values. Only if the raw values are
exported we have to make sure, that the changed value is merged into the
raw value and exported.
Don't set and create data structures.

Use the API of the XMPModel to set scalar values. This will not alter
the raw values. The XMPModel will have to keep track and merge changes
if the raw data is exported.
New testsetup for functional tests.

I'd like to test a round trip of XMPMetadata, that is: parsing, editing
and exporting the metadata again.