move parseXML into Node.pm
Completely refactor regexes

Add CDATA and text node support, and change the underlying logic to
reflect that
Switch to named captures and refactor