Add a GTypeFlag for final types
Currently this is only convention and neither documented nor enforced, and for example pygobject allows to simply subclass final types nonetheless as it can't really know about that (easily). In the Rust bindings there are currently some heuristics to detect these types (no class struct or instance struct and no known subclasses) but that's not really reliable.
It would seem useful to add a flag for this, and similar to G_TYPE_FLAG_ABSTRACT
also enforce it (i.e. don't allow creating subclasses).
Together with this should probably also a new G_DEFINE_FINAL_TYPE
(plus the usual variants) that like G_DEFINE_ABSTRACT_TYPE
simply sets this flag.
Also there should be some checks that these two flags are mutually exclusive.
Opinions? @pwithnall @ebassi