Wow, good catch. Inheritance is terrible.

Looking at `BasePermission` I don't see a good reason to subclass it. Let's change all our permission objects to not inherit from it.

More immediately, we could make `AnyOf.has_object_permission` call `AnyOf.has_permission` first, to specifically avoid this error.