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.