[#1184] Remove auth_sysadmins_check decorator from package_create

There is no reason why sysadmins should need to use the auth function.
[#1184] Update user checks in package create and update auth functions

The `auth_is_registered_user` function's name is misleading, as it only checks
if there is a user on the Pylons context object (ie if it is logged in).
It has been renamed to `auth_is_loggedin_user`, keeping the old as
deprecated. The function is not used anymore on the auth functions, as
the user should be always present in the context dict passed to the
functions (The controller sets context['user'] to c.user).
[#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.
[#1184] Check if user exists before filling creator_user_id

In some cases, eg anonymous package creation, users won't actually
exist, so we need to avoid a KeyError.
Merge pull request #1184 from okfn/1184-package_create-auth-fixes

Site user can not create datasets