Distinguish between "Assigned" and "Effective" identity PHIDs more clearly and consistently
Ref T13444. You can currently explicitly unassign an identity (useful if the matching algorithm is misfiring). However, this populates the "currentEffectiveUserPHID" with the "unassigned()" token, which mostly makes things more difficult.
When an identity is explicitly unassigned, convert that into an explicit null in the effective user PHID.
Then, realign "assigned" / "effective" language a bit. Previously, withAssigneePHIDs(...) actualy queried effective users, which was misleading. Finally, bulk up the list view a little bit to make testing slightly easier.
- Unassigned an identity, ran migration, saw currentEffectiveUserPHID become NULL for the identity.
- Unassigned a fresh identity, saw NULL.
- Queried for various identities under the modified constraints.
Maniphest Tasks: T13444
Differential Revision: https://secure.phabricator.com/D20908