Extend enum/option in configuration generation with optional capability attribute
Add libsecret support

This patch adds the option to use libsecret as a password storage backend in
darktable. Because the gnome-keyring API has been deprecated and has been
replaced with the implementation of a secret service that can be accessed via
libsecret it is recommended to use libsecret. Since kwallet already supports the
libsecret API this patch disables the kwallet and gnome-keyring backend if
libsecret is available automatically. If libsecret is not available on the
system it automatically falls back to the gnome-keyring API and kwallet, if
those are available and enabled.

Since attributes are not stored in an encrypted way and therefore are not part
of the secret, this patch converts the passed attributes into the JSON format
and stores the data as the secret. Attributes are only used to lookup the
corresponding secret item correctly. To read the encrypted attributes this patch
then converts the stored JSON data into a hashtable with said attributes.
Add FindLibsecret.cmake
Check for libsecret 0.18
Use macro instead of strlen to check for empty string
Set label for libsecret collection
Enable support for libsecret 0.16
Make secret_darktable_get_schema static
Resolve memory leak if secret_service_get_sync returns NULL
Prevent SIGFPE in slideshow if collection is empty

This patch resolves a floating point exception that occurs in

        int32_t rand = ran % cnt;

if the collection is empty and the variable cnt is therefore 0 which
results in a division by zero.

In addition a try_enter function is implemented to check the collection
count before trying to enter the slideshow view. If the collection is empty
a messages is displayed to tell the user so.
Add modelines
Merge pull request #700 from mlq/slideshow-sigfpe

Prevent SIGFPE in slideshow if collection is empty
Resolve several memory leaks
wb_presets: samsung nx3000 (thanks Anatoliy Shipitsyn)
Reintroduce else
Pass NULL instead of the unused GError
Fix memory leak
Fix modelines and documentation
Use g_hash_table_new_full instead of g_hash_table_new
Hopefully fix some small memleaks

The gnomekeyring part is untested, Debian ships a version that is too
new.