queue: replace rabbitmq/amqp with redis/rq

* Removes amqplib.

* Adds redis/rq.

* Replace all code that push async tasks.

* add an @async decorator that turns functions into async tasks and
  cleans up after the job (modeled after celery, maybe a bit fragile
  as an API).

* Adapt the background process an rename it to 'worker'.
Refactor @async decorator, set config from worker

* Set a config value in the worker that can be testeted
  and cleanup the Session if in worker.
* Leave async.enqueue() to be able to push a function into the
  queue if in worker.
* Adjust code to call functions directly, not the .enqueue()
  method of the decorator.
Refactoring: rq settings, split out paster timer command

* Bundle all functionality related to rq/redis config handling into
  a new class .lib.queue.RQConfig
* Factor out the code that creates timed jobs into .lib.cli.AdhocracyTimer.
  Add tests for that.
* Create a seperate paster command 'timer' that uses AdhocracyTimer.

I tried to keep the timer and the worker in one proces. The timer
worked well inside the worker process and (still) has redis based
locking. Only one of many timers will schedule jobs. But for some
reason the rq worker locks up after some jobs if the timer thread is
running in the same process, even if both use distinct redis
connection objects.  The rq worker forks a work horse to execute the
job. After several jobs it gets stale.
Fix calls to post_update which was renamed to update_entity
paster timer: Add the entry point to the command
Move rename the tests queue.py to test_queue.py
Port commits from redis branch from adhocracy.buildout

Port the following commits to the new buildout structure inside the main
adhocracy repo:

liqd/adhocracy.buildout@3a7e0f65179bf603bb0f1239497deeabacff88fb
Install redis and configure the redis server

liqd/adhocracy.buildout@14c8eca60307429dff5790e1cd1c927ca1321120
Add section to install rq scripts

liqd/adhocracy.buildout@c4c499c53d05fd21144e1f6f5b68629a79e70b83
Remove the amqp leftovers. bye bye

liqd/adhocracy.buildout@67dd48286a26f5e8bef272f13b651eefded764a7
Tweak redis config
Upgrade redis, redis-py and rq to newest versions

* Update redis from 2.4.14 to 2.6.10
* Update redis-py from from 2.4.13 to 2.7.2
* Update rq from 0.1.2 to 0.3.6
Fix fake_job method name

FakeJob is supposed to work in cases where redis isn't available.

Unfortunately, this doesn't work, as the `Job` constructor and other
methods has changed in newer versions of `rq`.

Fallback to `sync` if redis isn't available would be nice-to-have, but
isn't critical for the RabbitMQ replacement, as the availability of
RabbitMQ is currently mandatory as well.
Squashed commit of the following:

commit 4139a326404bc89e64e07939a1d2c04163f79886
Author: Carsten <schroeder_carsten@gmx.de>
Date:   Tue Feb 26 15:50:37 2013 +0100

    Removed translations (will add them again after merge)

commit 81e1535c16ab0c5cfc231a0c11a28ce2fc57dc50
Merge: 12a401f 4a63ae1
Author: Carsten <schroeder_carsten@gmx.de>
Date:   Tue Feb 26 15:14:10 2013 +0100

    Merge branch 'develop' into feature-email-login

commit 12a401f89f9a4deefa95f45f4a66c391d36e056a
Author: Carsten <schroeder_carsten@gmx.de>
Date:   Wed Feb 20 15:46:42 2013 +0100

    Updated migration script

commit da80e1c69b7a548182d0d99d1aaa121c9e484ef8
Merge: 25c1c69 659aed9
Author: Carsten <schroeder_carsten@gmx.de>
Date:   Tue Feb 19 14:17:51 2013 +0100

    Merge branch 'develop' into feature-email-login

    Conflicts:
    	adhocracy/controllers/user.py
    	adhocracy/i18n/de/LC_MESSAGES/adhocracy.mo
    	adhocracy/i18n/de/LC_MESSAGES/adhocracy.po

commit 25c1c692d988169eb5672cb5d8f615ea4290c854
Merge: b6ed12a 3201f0c
Author: Carsten <schroeder_carsten@gmx.de>
Date:   Tue Feb 12 18:18:59 2013 +0100

    Merge branch 'develop' into feature-email-login

    Conflicts:
    	adhocracy/i18n/adhocracy.pot
    	adhocracy/i18n/de/LC_MESSAGES/adhocracy.po

commit b6ed12a0cb0acc7ed1c4f551435fd76d848f8191
Author: Carsten <schroeder_carsten@gmx.de>
Date:   Tue Feb 12 12:40:19 2013 +0100

    UserUpdateForm has to check if new email adress is already in use

commit c573b548c54bdcc8f594411e788f264ddeadd31f
Author: carschroeder <schroeder_carsten@gmx.de>
Date:   Mon Jan 14 14:42:07 2013 +0100

    Added german translations for all new strings in this branch

commit 71de496c0c04b3583da9be6bac72505cb4abc42d
Author: carschroeder <schroeder_carsten@gmx.de>
Date:   Thu Dec 20 18:56:42 2012 +0100

    Fixed details for email login

commit c4760bff6b850a20aa5be32fbaed601f96780bbe
Author: test <test@localhost.(none)>
Date:   Thu Dec 20 18:28:45 2012 +0100

    Database migration script

commit 60f97c8366df0879d64842d0b49115ee108f5899
Author: Philipp Hagemeister <phihag@phihag.de>
Date:   Thu Dec 20 18:20:08 2012 +0100

    Require formencode 1.2.5 for <input type=email>

commit 929f3c05cfa5168cec6568c65d59ee9b33844295
Author: Philipp Hagemeister <phihag@phihag.de>
Date:   Thu Dec 6 23:38:10 2012 +0100

    Patch InstanceGroupSourceAdapter._get_item_as_row

commit 321aabc108a84107a1259c3fc4c480211a29f5a4
Merge: 4666373 7bfc7d2
Author: Carsten <schroeder_carsten@gmx.de>
Date:   Thu Dec 20 17:11:20 2012 +0100

    merge

commit 466637399cd96dc21e0a6ebc1ccbdfda0250d3ca
Author: Carsten <schroeder_carsten@gmx.de>
Date:   Mon Dec 10 13:01:32 2012 +0100

    Corrected "failed login" messages depending on allowed login types

commit 562e2d5dba56e7f50554ff0bd2aeda9729a1d352
Merge: 37d6312 122942a
Author: Carsten <schroeder_carsten@gmx.de>
Date:   Thu Dec 6 20:04:45 2012 +0100

    Merge branch 'develop' into feature-email-login

commit 37d63126efc9103eb7856b34479079199724a092
Author: Carsten <schroeder_carsten@gmx.de>
Date:   Thu Dec 6 20:01:26 2012 +0100

    Corrected login_form.html

commit bf6e997e4bee86958365001f43093842e90508e6
Author: Carsten <schroeder_carsten@gmx.de>
Date:   Thu Dec 6 19:32:30 2012 +0100

    Login options added (username+email or only username or only email)

commit 238c960fe9ef26b92e59e0066888c9e14964b87a
Author: Carsten <schroeder_carsten@gmx.de>
Date:   Mon Oct 29 19:05:14 2012 +0100

    login with email or username, not finished
Switch to single options in order to restyle instance overview page to the template needs
In the future, we could also ask the template (adhocracy.template) itself
Merge branch 'develop' into feature-220-replace-rabbitmq-with-redis

Conflicts:
	buildout.cfg
Add redis directory from buildout run

As discussed in #234.
typo
rename worker process to adhocracy_worker
Clean stale .pyc files on each buildout run

This deletes all `.pyc` files below `src` if no corresponding `.py` file
exists on each buildout run.

This reverts 1ca8ab0a6c68c580b8b770b8d72ed6b0f8fbd935, as this is then
already done.
Make sure legacy configurations continue to work, and PEP8-ify
Make default templates react to options
Remove some more RabbitMQ traces

* rabbitmq buildout file
* erlang dependencies (build.sh / INSTALLATION.md)
* rod.recipe.rabbitmq in versions.cfg
Remove xsltproc dependency

This was only needed for RabbitMQ