Unique permission

Blocks attempts to create duplicated `Permission` (or `PermissionGroup`) objects; there should only be one of a given ID in the system.

Would prevent errors like that worked around in https://github.com/jenkinsci/matrix-auth-plugin/commit/c71bb80c1806d05126277a90e3a99ddb67f095d0 for example.
Add javadoc to warn about possible RuntimeException?