Prevents circular references.

Prevents circular references between isAdministrator and user_has_perm.
They were calling each other in an infinite loop, causing a RuntimeError
for exceeding the maximum recursion call depth.

Fixes a bug introduced in 335ec7933117b368b14630e830b15377e576b359.

Also adds the functionality that having Administer on None acts as if
you also have Administer on every individual program.