[1541] Add empty alt tag to gravatar
[#1539] Create a minimal new Trash page
[#1652] Fix auth when creating a DataStore resource directly

If you provided a dataset id on datastore_create to create the resource
directly, the auth functions failed as they expected a resource. This
changes the datastore_create auth function to use package_update instead
of resource_update if that is the case.
[#1664] package_create+update: fix config permission check

Use the same permission checks for both package_update and package_create
and check all the applicable config options: anon_create_dataset,
create_unowned_dataset and create_dataset_if_not_in_organization
Catch exception in DataPusher

Fixes #1666
Fix link for api docs, issue #1670
Fix link for api docs in the footer template, issue #1670
Catch NotFound error in resources page
[#1668] Show only active users on cli
[#1721] log the user in programmatically after registration
[#1721] pep8
[#1721] leave username as unicode string

Fix so old user tests pass, not that we allow unicode usernames anyway
Merge branch 'master' into 1652-datastore-resources-auth
[#1652] Fix dodgy test
[#1694] Document using extra_vars over c
[#1745] remove lie about python 3 string formatting
[#1745] nothing wrong with from module import name
[#1745] recommend from module import name
Add Dockerfile for building a CKAN 2.2 image

This commit adds a Dockerfile and support files (including nginx and
runit configuration) for a binary CKAN 2.2 docker image.

Specifically, this allows you to build a docker image including CKAN
2.2, running behind nginx and gunicorn, by running

    docker build .

For example, to build an image called ckan/ckan tagged at version 2.2,
you might run

    docker build -t ckan/ckan:2.2 .

The resulting image contains only CKAN, with a nearly vanilla
configuration. In order to use it, you must do one of two things. You
can either use the vanilla configuration as-is, and this requires that
you specify the location of a Postgres database and a Solr core on
startup:

    docker run -i -t -p 80:80 \
      -e DATABASE_URL=postgres://user:pass@hostname/db \
      -e SOLR_URL=http://hostname:8983/solr/ckan_default \
      ckan/ckan:2.2

This will run CKAN, connect to the database, and initialise it if need
be. Configuring Solr will have to be done separately.

Alternatively, you can use this image as a base for extension. If a
configuration file is injected to /etc/ckan/default.ini, the image will
use that and ignore the DATABASE_URL and SOLR_URL environment variables.

Lastly, by default the CKAN file store is at /var/lib/ckan, and you may
well wish to mount this data volume outside the running container:

    docker run ... -v /mnt/storage:/var/lib/ckan ...
Add postfix to docker image and allow configuration

This ensures that we can configure error emails from the CKAN instance
inside the container.

An optional environment variable, ERROR_EMAIL, can be set for the
container. If set, it will configure CKAN to send error emails to
$ERROR_EMAIL. If unset, no emails will be sent.