Refs #71. Moved page break handling code
Refs #71. Use a function map instead of if..elif
Refs #71. Replaced recursive parse with an iterative parse
Refs #71. Better variable name
Refs #71. Sort all the things
Refs #71. Ignore the result if it is falsey
Refs #71. Pass the current node stack along for context
Refs #71. Parse and store the run properties on the parent node
Refs #71. Get the properties for the current element
Refs #71. Turns out I don't really need to track whether it is a character or paragraph property, that's implied by the tag itself