Explain GObject programming for beginners.