[#1210] Add auth_user_obj to context in check_access

If not already there or ignore_auth is True, and the context has a user
name, try to see if the user actually exists in the DB, and store the
object (or None if not found) in context['auth_user_obj']. The check if
performed only once per context object.
[#1210] Fix side_effect_free check

It should be in place if it is an action function from get.py and it
hasn't already been set.
[#1210] Require a logged in user by default except for get actions

By default, any auth function not in get.py will not allow anonymous
access, ie will require a logged in user to be performed. Core auth
functions are automatically configured when building the `AuthFunctions`
cache, but two decorators are provided to allow defining exceptions
in both cases and extensions to define the behaviour on their own auth
functions. The decoratos are `auth_allow_anonymous_access` and
`auth_disllow_anonymous_access`.

`check_access` will check for the auth_allow_anonymous_access attribute
on the auth function, and if False and there isn't a validated user
object in the context, it will raise a NotAuthorized exception.
[#1210] Fix auth tests and tweak auth functions

Add the anon access decorator to some functions as they require it in
some circumstances.

The storage controller was calling `is_authorized_boolean` directly,
which should be never done (same for `is_authorized`).

It would be god to refactor password_reset out of user_update, so
user_update does not require anon access.
[#1210] Add decorators to the plugins toolkit
[#1210] Yet more tests fixes
[#1210] Add user object to context in controllers

The base controller already checked whether there was a user object in
the db for the user name provided. If we added it to the context we save
the same check on check_access.
[#1210] Minor changes after review
[#1210] Add some docs
Merge branch 'master' into 1210-auth-checks-improvements

Conflicts due to changes in the docstrings for #943. Added relevant
missing bits.

Conflicts:
	ckan/logic/__init__.py
	ckan/plugins/interfaces.py
	doc/toolkit.rst
[#1210] check_access should always get an action name
[#1210] Fix test in ExampleIAuthFunctions Plugin
[#1210] pep8 fix
Merge pull request #1210 from okfn/1210-auth-checks-improvements

Auth checks improvements for logged in users