app: port GimpDataFactory file loading to GFileEnumerator

Also slightly change the semantics of gimp_data_set_folder_tags()
to be less complicated.
app: move gimp_file_compare() to gimp-utils.[ch]

It's a GCompareFunc to be used for finding GFiles in lists.
app: don't check for a writable dir for each loaded GimpData

Instead, do the check once for each element of the data path, and pass
the result to the load functions.