fix handling of self closing tags, like <hr/>

Use empty_element_tags in HTML::Parser, distinguish
close events by $text argument (empry - self closing,
not empty - real </tag>) as it's documented.

No tags autoclosing, so '<br>' results in '<br>'.

Space is added before '/>', so '<hr/>' result in '<hr />'.

Fixes tickets #19063 and #25477.
treat * attr rule in the same way as any other

this means it can be regexp
make it possible to process attributes with callabacks
fixup