Tagged-PDF: Text content extraction from structure elements

Implement StructElement::getText(), by using MCOutputDev. This output device
captures pieces of text (aka "spans") which have the same attributes into
a list of TextSpan objects.
Tagged-PDF: Modify pdfinfo to show the document structure
Tagged-PDF: Implement the utils/pdfstructtohtml tool

This adds a new tool "utils/pdfstructtohtml" that uses the document
structure from tagged PDFs to generate an HTML document from it, trying
to preserve as much of the structure and some of the styling in the
output. This serves also as a demonstration of how to use the Attribute
and StructElement classes.
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.
glib: Private function _poppler_link_mapping_new_from_annot_link()

Move the code that creates a PopplerLinkMapping to its own function, and add
it as private API. This will avoid duplication of the code when creating a
PopplerLinkMapping from a PopplerStructureElement.
glib: Private function _poppler_link_mapping_new_from_form_field()

Move the code that creates a PopplerFormFieldMapping to its own function,
and add it as private API. This will avoid duplication of the code when
creation a PopplerFormFieldMapping from a PopplerStructureElement.
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.
glib: Accessors for form fields of structure elements

Implements two methods which can be used on PopplerStructureElement objects
of type POPPLER_STRUCTURE_ELEMENT_FORM:

- poppler_structure_element_get_form_field()
- poppler_structure_element_get_form_field_mapping()

The only difference is that the later returns a PopplerFormFieldMapping,
which itself contains the PopplerFormField, plus the rectangle covered by
the form widget in the page.
glib: Accessors for document structure references

Implements functions to work with PopplerStructureElement objects which
are references to other entities in the document. Whether an element is
a reference can be checked with poppler_structure_element_is_reference(),
and poppler_structure_element_get_reference_type() returns the type of
object referenced. For POPPLER_STRUCTURE_REFERENCE_LINK references, a
PopplerAction (or PopplerLinkMapping) can be retrieved using the
poppler_structure_element_get_reference_link_action() or
poppler_structure_element_get_reference_link_mapping() methods.
glib: Implement accessors for element attributes

Implement inspecting the standard attributes of PopplerStructureElement
objects.
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.