Remove debug statements in authentication decorator
Respect permissions of Django's anonymous user in role decorator
Add and use middleware to use Guardian's anonymous user object

To also provide per-object permissions for anonymous users, Guardian
uses a real Django user (called AnonymousUser). By default, the user
property of a request onject for a not logged in user is an instance
of Django's AnonymousUser class (not a User object!).

This needs special treatment when dealing with per-object permissions
within Django. Therefore this middleware class tests on every call
whether the request came from an authenticated user. If not, it replaces
Django's AnonymousUser class object with Guardian's User object for the
anonymous user (called AnonymousUser). This allows transparent handling
of a request's user property to retrieve objects based on Guardian's
permissions.
Make sure Guardian's anonymous user has a user profile
Only give out projects which the user can administer or browse
Let data views respect object permissions
Merge branch 'anonymous-browsing'