Support usage without anonymous users

With some custom models, creating users may be complicated; reasonable
defaults may not exist for some fields, and special-casing a sentinel user
elsewhere in views code separately from Django's provided AnonymousUser may
be unpalatable.

For these situations this commit adds the ability to disable anonymous user
support entirely; any permissions check against such a user will always
return False. No user is created when "syncdb" is run.

To disable anonymous user support in your site, set ANONYMOUS_USER_ID to
"None" in settings.py.

An unset ANONYMOUS_USER_ID will still cause an error.