gerror: Add support for extended errors

This commit adds a G_DEFINE_ERROR_TYPE macro and
g_error_domain_register() functions to register extended error
domains. This feature uses tagged quarks to avoid the overhead of
locking when the domain is not an extended one (which is likely going
to be a majority of cases).
13 jobs for extended-error in 31 minutes and 18 seconds (queued for 2 seconds)
Status Job ID Name Coverage
  Style Check
failed #538091
allowed to fail
style-check-diff

00:00:37

 
  Build
passed #538096
cross-android_api21_arm64

00:02:16

passed #538097
cross-android_api28_arm64

00:01:05

passed #538098
cross-mingw64

00:03:26

passed #538093
debian-stable-x86_64

00:04:23

passed #538092
fedora-x86_64

00:07:48

passed #538095
G_DISABLE_ASSERT

00:04:02

passed #538094
installed-tests

00:12:56

passed #538099
win32
msys2-mingw32

00:12:01

passed #538100
win32
vs2017-x64

00:07:19

 
  Coverage
passed #538101
coverage

00:01:13

78.1%
 
  Analysis
passed #538103
scan-build

00:16:30

failed #538102
allowed to fail
valgrind

00:00:53

 
Name Stage Failure
failed
valgrind Analysis
Uploading artifacts...
_build/config.h: found 1 matching files
_build/glib/glibconfig.h: found 1 matching files

_build/meson-logs: found 5 matching files

Uploading artifacts to coordinator... ok
id=538102 responseStatus=201 Created token=ygTez7q1
Uploading artifacts...
WARNING: _build/valgrind-report.xml: no matching files
ERROR: No files to upload
ERROR: Job failed: exit code 1
failed
style-check-diff Style Check
-quark_from_string_locked (const gchar   *string,
- gboolean duplicate)
+static inline GQuark
+quark_from_string_locked (const gchar *string,
+ gboolean duplicate)
{
return quark_from_string_locked_tagged (string, duplicate, 0);
}
ERROR: Job failed: exit code 1