HexToASCII: display information about invisible characters

- Reduce the number of entered characters to 128, since we can't be sure
  of the display width any more.
- Show "invisible characters" (unprintable + non-space whitespace) in a
  special format
HexToASCII: fix silly typo
HexToASCII: improve and standardize output

- With code tags (thanks, @mintsoft!), we'll count on the user agent
  rendering the codes slightly differently, so we do not need to style.
- Returning both 'pure ASCII' and 'html' representations.

The code layout now feels either slightly over-clever or slightly
under-clever and I am not sure which!
HexToASCII: Add too long string test.

I also did some rearrangement of the test source, because I kept getting
lost in it, despiteit being so short. I hope this is ok.
HexToASCII: Improve implementation and comments.

- Do not even process characters which we aren't going to include.
- Move guard against non-ASCII inside the printable_chr function.
- Add a test to show that it doesn't handle queries which contain
  non-ASCII characters.
- Add comments to clarify intent.

This is less clever than the previous version, which implies the
answer to my question from a previous commit.

Turns out that adding comments will actually make me do a slightly
better implementation!  Who knew?!
Merge pull request #282 from mwmiller/master

HexToASCII: display information about invisible characters