Short-circuit looking for transaction CFs where they can never exist

775f4bd replaced the ticket-specific ShowTransaction with a generalized
one; however, it missed one notable difference between the two.  The
general one checked every transaction for OCFVs, whereas the ticket
transaction display, in 69a36d9, had replaced that with a limit to only
"message" elements, and let ShowCustomFields further check for OCFs.
This had the unintentional side effect of hiding the transaction CFs if
the transaction had no CF values, but also added a notable performance
regression.

Remove the unindexed OCFV check per transaction, and short-circuit
transaction CF display by checking once in ShowHistory if there are any
OCFs applied at all.  Note that if there are OCFs, ShowCustomFields does
its own check for OCFs once per transaction; this second check could
theoretically be removed by passing $CustomFields from ShowHistory all
of the way down into ShowCustomFields, but this would cause the existing
MassageCustomFields callback to be called repeatedly on the same object,
once per transaction.

This does not add back the logic to limit CF display to transaction of
type "message"; if transaction CFs were applied to non-tickets, such a
change would hide them, as they had been displayed under the old
/Elements/ShowTransaction.
Merge branch '4.2/transactions-cf-optimization' into 4.2-trunk