Add a flag to permission() to allow_anonymous users

There are cases where it makes sense to allow anonymous users access to
protected views. In particular, there are times when anons may be
allowed access based on some criteria (e.g., status of a model
instance) while authenticated users are allowed access based on
user-related criteria.