Added CDATA handling

Most importantly, SaXPath sends the ‘opencdata’,  ‘cdata’ and
‘closecdata’ events to the recorder, which can now handle it. To avoid
breaking compatibility in existing recorders, those methods are
optionnals.

The XML recorder simply handles these events by re-creating the CDATA
block as it previoulsy was, ie:
- onOpenCDATA: add <![CDATA[ to the node
- onCDATA: add data to the node
- onClodeCDATA: add ]]> to the node