Extend GError to store extra data in the key-value store

Extra data can be used to store additional context of the failure.
10 jobs for error in 21 minutes and 16 seconds (queued for 3 seconds)
latest
Status Job ID Name Coverage
  Build
passed #359160
cross-android_api21_arm64

00:02:17

passed #359161
cross-android_api28_arm64

00:02:12

passed #359162
cross-mingw64

00:02:46

passed #359158
debian-stable-x86_64

00:03:39

passed #359157
fedora-x86_64

00:06:22

passed #359159
G_DISABLE_ASSERT

00:02:51

passed #359163
win32
msys2-mingw32

00:14:08

passed #359164
win32
vs2017-x64

00:09:52

 
  Coverage
passed #359165
coverage

00:01:41

77.9%
 
  Analysis
passed #359166
scan-build

00:05:25