pdftops: ensure paper size takes into account rotation

Bug 72312
pdftps: fix DocumentMedia/Page/Media/PageBBox DSC comments

Bug 72312
pdftops: Use crop box as page size

unless -nocrop is used. The fontends use the crop box as the page size and
acroread uses the cropbox as the page size for display and printing.

Bug 72312
pdftops: Remove origpagesizes mode and make -origpagesizes an alias for -paper match

Bug 72312
pdftops: Only change paper size when different to previous size

Previously this check was done in the code (removed in previous commit).
Moving this check into the pdfSetupPaper macro preserves page independence.

Bug 72312
pdftocairo: ensure page size and crop box works the same as pdftops

Bug 72312
cairo: clip to crop box

when printing the cairo surface may larger than the crop box

fixes https://bugzilla.gnome.org/show_bug.cgi?id=649886
pdftops: ensure there is always a page size in the output

even if the PDF file as badly broken.
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.