docs: Update GObject how-to for G_DECLARE_*_TYPE macros
docs: Update GObject how-to for G_DECLARE_*_TYPE macros

Restructure the section of the how-to which covers the header and source
code boilerplate for declaring and defining GObjects to use the new
G_DECLARE_*_TYPE macros. Present both final and derivable types.

Trim various supporting paragraphs.

Rename ‘class functions’ to ‘virtual functions’ to use consistent,
modern terminology.

https://bugzilla.gnome.org/show_bug.cgi?id=744060

cention-sany/glib,ieei/glib,cention-sany/glib,Distrotech/glib,tchakabam/glib,endlessm/glib,tchakabam/glib,gale320/glib,endlessm/glib,ieei/glib,johne53/MB3Glib,cention-sany/glib,tchakabam/glib,MathieuDuponchelle/glib,gale320/glib,tchakabam/glib,gale320/glib,Distrotech/glib,gale320/glib,MathieuDuponchelle/glib,mzabaluev/glib,mzabaluev/glib,ieei/glib,cention-sany/glib,gale320/glib,endlessm/glib,johne53/MB3Glib,MathieuDuponchelle/glib,endlessm/glib,MathieuDuponchelle/glib,johne53/MB3Glib,ieei/glib,mzabaluev/glib,endlessm/glib,Distrotech/glib,johne53/MB3Glib,MathieuDuponchelle/glib,johne53/MB3Glib,cention-sany/glib,Distrotech/glib,tchakabam/glib,Distrotech/glib,ieei/glib,mzabaluev/glib,mzabaluev/glib,johne53/MB3Glib