This change adapts the PermissionBackend to only accept a Set of
PermissionBackendConditions and put the burden of deduplication onto
Gerrit rather than the PermissionBackend.
This makes sense since most likely all PermissionBackends want to
deduplicate calls before evaluating them assuming evaluations are in
general more expensive compared to in-memory operations like
deduplications.
This commit adds logic for deduplicating PermissionBackendConditions to
UIActions - the only caller of the method. It also adds a test to ensure
that deduplication works as expected.
Change-Id: I2571cbc9d9785843fae14b90dfe3910c50094b0e