GVariant: Better handling of invalid UTF-8
GVariant: Better handling of invalid UTF-8

g_variant_new_string() hits a g_return_if_fail() when given invalid
UTF-8.  That's certainly the right thing to do, but
g_variant_builder_add() uses this function internally and crashes when
it returns NULL due to the user passing a non-utf8 string.

We can protect the internal code by returning "[Invalid UTF-8]" in this
case while also making the problem easier to debug (and less fatal).

Closes #632631.

01org/android-bluez-glib,krichter722/glib,endlessm/glib,ieei/glib,pstglia/external-bluetooth-glib,darren-clark/android_platform_external_bluetooth_glib,Distrotech/glib,ieei/glib,pstglia/platform-external-bluetooth-glib,cosimoc/glib,ieei/glib,01org/android-bluez-glib,djdeath/glib,bluez-android/glib,darren-clark/android_platform_external_bluetooth_glib,justinkb/aosp-bluez.glib,mzabaluev/glib,pstglia/platform-external-bluetooth-glib,pstglia/external-bluetooth-glib,pstglia/external-bluetooth-glib,johne53/MB3Glib,justinkb/aosp-bluez.glib,djdeath/glib,zsx/glib,zsx/glib,tchakabam/glib,darren-clark/android_platform_external_bluetooth_glib,tchakabam/glib,tamaskenez/glib,ieei/glib,krichter722/glib,MathieuDuponchelle/glib,bluez-android/glib,pstglia/platform-external-bluetooth-glib,antono/glib,antono/glib,justinkb/aosp-bluez.glib,mzabaluev/glib,cosimoc/glib,Distrotech/glib,MathieuDuponchelle/glib,justinkb/aosp-bluez.glib,antono/glib,ieei/glib,gale320/glib,iConsole/Console-OS_external_bluetooth_glib,iConsole/Console-OS_external_bluetooth_glib,MathieuDuponchelle/glib,mzabaluev/glib,mzabaluev/glib,MathieuDuponchelle/glib,djdeath/glib,justinkb/aosp-bluez.glib,iConsole/Console-OS_external_bluetooth_glib,endlessm/glib,cosimoc/glib,johne53/MB3Glib,endlessm/glib,pstglia/external-bluetooth-glib,pstglia/platform-external-bluetooth-glib,MathieuDuponchelle/glib,tamaskenez/glib,johne53/MB3Glib,Distrotech/glib,lukasz-skalski/glib,cention-sany/glib,djdeath/glib,gale320/glib,krichter722/glib,gale320/glib,krichter722/glib,bluez-android/glib,iConsole/Console-OS_external_bluetooth_glib,bluez-android/glib,tchakabam/glib,cosimoc/glib,iConsole/Console-OS_external_bluetooth_glib,lukasz-skalski/glib,tchakabam/glib,tchakabam/glib,tamaskenez/glib,Distrotech/glib,darren-clark/android_platform_external_bluetooth_glib,01org/android-bluez-glib,antono/glib,krichter722/glib,endlessm/glib,johne53/MB3Glib,zsx/glib,Distrotech/glib,tamaskenez/glib,01org/android-bluez-glib,lukasz-skalski/glib,cosimoc/glib,pstglia/platform-external-bluetooth-glib,cention-sany/glib,mzabaluev/glib,cention-sany/glib,endlessm/glib,lukasz-skalski/glib,gale320/glib,gale320/glib,johne53/MB3Glib,djdeath/glib,darren-clark/android_platform_external_bluetooth_glib,tamaskenez/glib,johne53/MB3Glib,pstglia/external-bluetooth-glib,cention-sany/glib,zsx/glib,cention-sany/glib,bluez-android/glib,lukasz-skalski/glib,01org/android-bluez-glib