Consistent transactions for all role group membership changes

A new transaction type, SetWatcher, is now created by single member role
groups when the assigned member changes.  SetWatcher is more useful than
a pair of Add/DelWatcher transactions since the old and new members are
on the same transaction object.  Such role groups which are also
denormalized into a column still record a Set <Column> transaction on
the record (i.e. tickets record a SetWatcher Owner and Set Owner
transaction for each Owner change).  While redundant on the surface, the
SetWatcher and Set transactions are distinct because they mark,
respectively, the group membership change and the record column change.

Add/DelWatcher is still used for all other role groups but is more
consistently set from deeper in the API: RT::Group->_Add/DeleteMember
creates the transactions instead of Add/DeleteRoleMember in the Roles
role.  Aside from greater consistency no matter which API method is
called, the move keeps all transaction creation alongside that of
SetWatcher and Set which must be in RT::Group.

Display of SetWatcher transactions is supported by core RT but not
currently used.  Without backdating new transactions to fill in existing
ticket history, it's impossible to solely use SetWatcher for ticket
owner history display.  Instead, displaying SetWatcher is skipped when
it applies to the Owner role on a ticket.  All other objects and roles,
such as those provided by extensions, will display SetWatcher
transactions.
Merge branch '4.2/watcher-transactions'