Fix rendering text-based attachments without a matching lexer.

It's possible to not find a valid lexer when attempting to render
a file attachment. To deal with that, we now fall back on an instance of
TextLexer(), which just simply renders the text safely to HTML.

This applies to both thumbnails and the review UI.