Don't expand groups assigned as roles in ticket columnmap

Previous to d8fc54b, the ticket columnmap used
MemberEmailAddressesAsString fr role groups.  This method does a
recursive memership lookup, and thus a single large group added as a Cc
would be listed as the entirety of their email addresses.  d8fc54b kept
this behavior.

Instead of dispalying a potentially large list of email addresses,
simply display the name of the group instead.  This mirrors what the
ticket display page does for such cases.
Ensure that RT::Ticket has a method for every role group

Roles are in the singular declension; thus support and encourage
->Requestor for consistency.
Move $linkUsers into an element so it can be used externally

Multiple locations, particularly where role groups are involved, may
wish to enumerate and link group and user contents.
Add role groups to ColumnMap computationally

If a class ColumnMap does not explicitly define handlers for its role
groups, compute and display them computationally.  Unfortunately, $Class
is already in the form RT__Ticket and not RT::Ticket, and thus must be
computationally transformed back.

This also implicitly changes from using the ->Requestors method to
calling ->RoleGroup("Requestor"), which bypasses the ShowTicket ACL.
However, as results in the ticket list have already had ShowTicket
applied, this cannot cause an information leak.
Move ShowGroupMembers to new ShowPrincipal method

Both accomplish identical purposes; happily ShowPrincipal gives
sufficient rope to re-implement ShowGroupMembers.
Cache roles in columnmap
Insert roles in an intermediate step before calling class-specific component

This makes the role definitions availble to the class-specific columnmap
in $GenericMap, in case they wish to wrap them.  This is necessary, for
instance, in the case of KeyRequestors for Tickets.
Pull Requestors definition from GenericMap when GPG is off

As GenericMap is only available at runtime, and thus not in the <%ONCE>
block, move it to the <%init> block such that KeyRequestosrs functions
when GPG is disabled.  KeyOwnerName still examines $COLUMNMAP because
OwnerName is still a RT::Tickets-specific columnmap, preserved for
backwards compatibility.
Merge branch '4.2/dont-recurse-groups-in-role-columnmap'