gobject: don't allow setting constuct-only property via g_object_set*()

The function g_object_set_is_valid_property() has two callers, which in
turn have the following callers:

  - g_object_setv()
    - g_object_set_property()
  - g_object_set_valist()
    - g_object_set()

All these functions are public API, but they are never directly called
by "gobject.c". This means, during construction of an object, GObject
itself does not call any of these functions.

Note that you can image cases, where the user obtains a pointer to an
object under construction and calls a property setter function again.
However, at that point, I don't think they are allowed to reset a
construct-only property. Construct-only properties must only be
specified during g_object_new() (etc.).

Hence, this check for whether we are in construction is unnecessary and
wrong. You also cannot use the public property setter functions to set a
construct-only property even if the object is still under construction.

This changes behavior since aa63f7e3739e ('fix g_object_set() whithin
_init() implementations not working for').
diff --git a/gobject/gobject.c b/gobject/gobject.c
index 50d929b..0fa8346 100644
--- a/gobject/gobject.c
+++ b/gobject/gobject.c
@@ -3035,7 +3035,7 @@
                   G_STRFUNC, pspec->name, G_OBJECT_TYPE_NAME (object));
       return FALSE;
     }
-  if (G_UNLIKELY (((pspec->flags & G_PARAM_CONSTRUCT_ONLY) && !object_in_construction (object))))
+  if (G_UNLIKELY (pspec->flags & G_PARAM_CONSTRUCT_ONLY))
     {
       g_critical ("%s: construct property \"%s\" for object '%s' can't be set after construction",
                   G_STRFUNC, pspec->name, G_OBJECT_TYPE_NAME (object));