Prevent nested links.
since we're getting invalid XML from Cato, turn on recovery parsing
simplify how the nodes are passed around in build_html_tree
don't crash if there is a processing instruction at the top of the XML document
convert en-dashes to hyphens when constructing US Code links to Cornell LII, and don't encoding anything to UTF-8 because lxml.etree will reject pre-encoded bytes that contain control characters
let the URL function return None to not create a link (again)