Add redis as a requirement; use as Celery transport.
Generate statistics in a background task.

Also updates other tasks to use the shared app
decorator (so that settings are correctly propagated
to unittests).

Also adds a custom test runner to run celery tasks
synchronously.

Issue #214.
Show a warning in case of redis connection problems.
Suppress errors that occur when scheduling tasks.

None of these background tasks are essential to normal
operation, so better to suppress these errors rather than
blow up the request.

Implemented centrally as context manager so that we can tweak the
exact policy later (different celery brokers would throw different
exceptions).

Errors are shown in the cache log handler.
setup-kegbot: Prevent running as root unless --allow_root is given.
kegadmin: Add celery worker status page.