1. Three bugs reported by Mike Schiraldi:
* If -fautolink is turned on, a naked @ becomes a mailto:
link. Fixed by only triggering `maybe_tag_or_link()` on
alphabetic characters.
* If -fnohtml is set, forced linebreaks become <br/>.
Fixed by filtering out nonprinting nonwhitespace characters
on the input and using ^C as the <br/> generator character
instead of converting the forced linebreak directly to <br/>.
* inline links (via []()) don't allow spaces or escaped ) characters.
Fixed by rewriting `linkyurl()` so it builds a new `Cstring` for
link.link (which needs to be deleted after use, so I added a new
`deallocate` field to the bookmark record for `linkylinky` to use,)
changing the link gobbler to absorb input until a terminator instead
of until whitespace or a terminator) and allowing \ to escape ), =,
or ".
2. Change the `Qchar()` function so that it take an integer argument instead
of a char. (reported by Josh Wood from the plan9 port.)
3. Some bugs I discovered
* Flag the raw: pseudo-protocol so that it will be disabled when
DENY_HTML is set.
* Rework `maybe_tag_or_link()` so it better rejects random stuff
that begins with a `<`.
4. Add the new `abbr:` pseudo-protocol (the html `<abbr>` tag)