Add a ReassignTicket right to allow owner changes on owned tickets

Users have frequently requested the ability to change the owner on
a ticket that already has an owner. Previously RT required you to own
a ticket to change the owner, so you had to steal a ticket owned by
someone else, then set the owner. The new ReassignTicket right allows
users to change owner directly (reassign tickets).
Change _CurrentUserHasRightToSetOwner to public CurrentUserCanSetOwner

Make public and rename to CurrentUserCanSetOwner to make it
consistent with other CurrentUserCan method names.

Meld _IsProposedOwnerChangeValid into CurrentUserCanSetOwner to
handle all of the logic in one place and provide a single
response from CurrentUserCanSetOwner. This simplifies SetOwner
and makes CurrentUserCanSetOwner suitable for calling to test
for owner change permissions in the context of the current
ticket.
Replace individual rights checks with CurrentUserCanSetOwner

CurrentUserCanSetOwner in RT::Ticket handles the various cases
for changing owner based on Stealing and Taking tickets.
With the new ReassignTicket right, it's no longer the case that
OwnTicket is needed to have the rights to assign tickets to
others.
Merge branch '4.2/add-reassignticket-right'