Report LBody elements in Tagged-PDF structure as block elements

According to section 14.8.4.3 "Block-Level Structure Elements"
(in particular subsection 14.8.4.3.3 "List Elements"), structure
elements of type LBody must be reported as block elements. This
patch changes the reported type from elementTypeUndefined to
elementTypeBlock accordingly.

https://bugs.freedesktop.org/show_bug.cgi?id=74522
Allow properly identifying grouping elements

Grouping elements in the Tagged-PDF structure should be identifiable as
such (see section 14.8.4.2 "Grouping Elements" of the PDF standard). Those
were previously reported as inline elements, which is quite not correct.
This patch introduces a new StructElement::isGrouping() method which
correctly reports grouping elements as such.

https://bugs.freedesktop.org/show_bug.cgi?id=74520
glib: Fix gobject-introspection warnings
glib-demo: Fix performance in text markup annotations

Fix https://bugs.freedesktop.org/show_bug.cgi?id=51487#c45
glib: Expose the document structure tree

Implements a new PopplerStructureElement classe, which builds upon
StructTreeRoot and StructElement to expose the document structure of
tagged PDFs in the GLib binding.

Navigation of the structure tree is done by an iterator-based interface,
using PopplerStructureElementIter.

https://bugs.freedesktop.org/show_bug.cgi?id=64821
glib: Expose inline attributes of structure elements

Allows obtaining inline text attributes from structure elements. The text
is divived into "spans", which are groups of consecutive glyphs that share
their attributes. Each one of those is represented by a PopplerTextSpan,
which gives information about the text font and color, and the link target
for links. The list of PopplerTextSpans is created lazily when first used.

https://bugs.freedesktop.org/show_bug.cgi?id=64821
glib-demo: Pane showing the document structure

Adds a new pane in poppler-glib-demo showing the structure for Tagged-PDF
documents. It also serves as an example on how to to use the API for
PopplerStructure and PopplerStructureElement.
Fix cmake build
Make sure number of least objects in hints table is valid

Bug #74741
increase gtk3 dependency

gtk_tree_view_set_activate_on_single_click was introduced in 3.8
blend usage in PDF with spot colors casue random output

The reason for the random colors is the uninitialized local variable cBlend. The blend functions only fills offset 0 to 3, so offset 4 up to 4 + SPOT_NCOMPS are left uninitialized, but all offsets are stored in the bitmap.
So we need to initialize these offsets with 0!

Bug #74883
Clang++ plugin that checks for usage errors in GooString::format-style calls
Some error() usage fixes
glib: Handle missing structure element types

Element Art (article); RB, RP, RB (Ruby text inner elements); and
WT, WP (Warichu inner elements) were not being handled. This adds
the corresponding handling in poppler-glib. Also, the "default" case
in the switch in poppler_structure_element_get_type() is removed, so
the compiler can emit warnings when enum values are not handled.

https://bugs.freedesktop.org/show_bug.cgi?id=75323
glib: Add poppler_structure_element_is_grouping()

Implement a method to check whether a structure element is a grouping
element, wrapping the StructElement::isGrouping() method.

https://bugs.freedesktop.org/show_bug.cgi?id=74753
Tagged-PDF: Fix parsing of attached element attributes

The wrong object was used as attribute dictionary, which caused
a segmentation fault when parsing PDF files in which the structure
elements included attributes attached to them. This patch fixes the
issue.

Thanks to Joanmarie Diggs <jdiggs@igalia.com> for helping in
debugging the problem.

https://bugs.freedesktop.org/show_bug.cgi?id=74805