Add support for multi-db transactions and routing

This patchset adds support for multi-db transactions and routing in Synnefo.
It includes:

* A design doc for multi-db transactions.
* An implementation of a router for Cyclades/Astakos apps.
* The core logic for multi-db transactions (in snf-django-lib).
* The actual Cyclades/Astakos interface for multi-db transactions.
* Tests for Cyclades/Astakos transactions.

Note that tests that require multiple databases could not be added, without introducing non-trivial changes to the testing scheme of Synnefo.