Display CF values in searches using the standard display components

All types of custom fields are now rendered in search results, instead
of revealing their internal values.  Multiple values are displayed as a
true list, instead of newline separated, to better match
/Elements/ShowCustomFields.

Values linked to a URL template and AJAX included content are still
ignored.
Scrub HTML from the spreadsheet view of ticket searches

This prevents the web display parts of column map from leaking into the
spreadsheet, such as through custom fields.  However, multiple value CFs
are now output all run together instead of separated by "<br>" elements.
Whether this is an improvement or not depends on your point of view, but
it will be remedied to something saner in a following commit.

Any HTML entities are also decoded so that no HTML should be left.
Split the CustomField column map into multiple functions

By separating the cached load from the actual rendering, the CustomField
value definition is more extensible by local overlays or plugins.
Explicitly passing an array of RT::ObjectCustomFieldValue objects to
render provides a way to filter rendered values cleanly.
Move substitution of newlines with <br>s into ProcessColumnMapValue()

ProcessColumnMapValue() lets us do the line break substitution only if
we're processing a value that isn't native HTML.  Column map values can
now return scalar refs containing newlines without them getting mangled.

The original intent, as added in bb64635, was to preserve newlines in
textarea custom field values.  This behaviour is maintained since column
map CFs are now rendered through the standard components.
Separate image CF filenames from thumbnails with a visible newline

The newline was never visible on ticket display.  However, it was
visible for ticket searches since the collection list code used to
substitute \n for <br> (until d1e9d48).  The visual line break is more
pleasing, so include it everywhere.
Merge branch '4.2/cf-display-in-searches'