Add asyncio to the storage backends and most of the codebase. A lot of
it merely uses asyncio APIs, but still doesn't actually run several
things concurrently internally. Further improvements will be added on
top of these changes
Thanks to Thomas Grainger (@graingert) for a few useful pointers
related to asyncio.
Just to get master back up and running again, pin libraries to the
versions we used back when the latest development happened.
I'll start upgrading them gradually, but need a green master first.