GSocketControlMessage: clean up confusing code
GSocketControlMessage: clean up confusing code

It looks like the deserialisation function in GSocketControlMessage can
potentially leak a reference to the class structure of a
GSocketControlMessage subclass (although the particular code path is
probably never hit).

Clean up the code a bit.

Also, make sure that the GUnixCredentialsMessage type is registered
before attempting deserialisation.

Closes bug #629687.

ieei/glib-old-android,dicer/android_external_glib,dicer/android_external_glib,dicer/android_external_glib,ieei/glib-old-android,ieei/glib-old-android,ieei/glib-old-android,dicer/android_external_glib,dicer/android_external_glib