[#1184] Fix failing test due to not providing the user
[#1184] Revert 243cd1c with a better anon user check

Due to how the controllers set up the user in the context it was
impossible with the current logic to identify an anonymous request on
the auth functions.
On ckan/lib/base.py:232 the following are set on the pylons context object
(c):

* Anon request (not logged in):
    c.user = None
    c.author = IP (or 'Unknown IP Address')
* Logged in user:
    c.user = User name
    c.author = User name

Once in the controllers, these are normally used in:

    context = {'user': c.user or c.auhtor}

That means that once in the auth functions we need way to check if
a call is anonymous that works both for requests made via the web
(object c) or called directly from an extension, where the user is
defined directly on the context. The new `auth_is_anon_user` function
does that.

Ideally this should be handled automatically at a higher level, and the
logic layer should always work with users defined on the context object.