opf: rework to process spine nodes during read()

The parser stored the elements in the spine as a list of ids into
the fileinfo (manifest) map. This change reworks the logic to
process spine nodes during the read() calls, removing the need to
store the spine data internally.

This is the first step to get the OPF parser to generate Document
Reference metadata for the spine data.