Checkpointing. This currently does not work as-is. I added support
for processing Rowspan correctly and it seems to work as expected,
but still need to do add some handling to actually generate the
tbl(1) format spec.
This implementation relies on holding a big node-set in memory,
containing "Cell" elements store information about the nature of
each cell (e.g., whether it is a "normal" cell, or the result of a
Rowspan or Colspan). I could not figure out a way to implement
support for Rowspan without ending up storing multiple, duplicate,
Cell elements for each cell. (It gets uniq-ified later using the
EXSLT set:distinct function.) The duplication will probably cause
performance and memory issues with big tables. Maybe I will figure
out later how to do it properly; but for now, this will have to do.