Support ordering tickets by queue watchers

Previously OrderByCols accepted FIELD => "QueueCc" but treated it as
FIELD => "Cc", that is, as the ticket watchers instead of queue
watchers.  Resolve this inconsistency by passing the target role group
class as an argument to _WatcherJoin, which percolates into
_RolesGroupsJoin.  This matches the behaviour of the RoleLimit method,
which handles limits on ticket and queue watchers.
Encapsulate the role group class into a method

This enables overriding of the default of blessed($self->NewItem).
NewItem may return a subclass of RT::Ticket, which doesn't match the
database values and confuses the role limits.  An example is
RT::Reports::Tickets which uses a NewItem of RT::Reports::Tickets::Entry
but cares about role groups on RT::Ticket.

The method is provided by the Roles role, so most consumers need not
worry about this implementation detail unless they're doing something
wonky.