Support CDATA blocks in HTML/XML

Currently XML with CDATA blocks parses with an error:

    <r><![CDATA[
      This is valid, but the open and close angle brackes are flagged as errors.
    ]]></r>

This pull request modifies the HTML scanner (since the XML scanner just defers to that) to add CDATA block scanning. The block is tagged with a `:string` group with the opening `<![CDATA[` and closing `]]>` marked as `:delimiter` and the contents as `:content`.

If a CDATA block starts but is never closed, all content following the opening delimiter are tagged with `:error`.