Tagged-PDF: Interpret the document structure

Picking from StructTreeRoot, recursively creates a tree of StructTreeNode
objects representing the structure of the document. The biggest missing
things are:

- Presenting more information in StructTreeNode, being the most
	important reading the structure and attribute dictionaries for
	the elements in the tree.
- Resolving marked-content identifiers which refer to information
	stored in page object streams.
- Creating a synthetic tree when the PDF is not tagged to use as
	fall-back.
Tagged-PDF: Modify pdfinfo to show the document structure
Tagged-PDF: Expose the structure tree in poppler-glib

Implements two new GObject classes, which build upon StructTreeRoot
and StructElement to expose the document structure of tagged PDFs
in the GLib binding:

- PopplerStructure wraps StrucTreeRoot, and contains additional utility
  methods to search for elements in the structure tree.
- PopplerStructureElement wraps StructElement, and does the heavy lifting
	of exposing data in GLib-friendly data types.

For standard attributes, to avoid cluttering the class with fmethods, a
single poppler_structure_element_get_attribute() method is implemented,
which returns either NULL (for undefined attributes) or a GVariant
containing a sensible representation of the value.
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.