port to new soledad async api

**Not ready to merge, missing changes in leap.mail and maybe other to be compatible with the new API**

It needs to synchronize the merge with the soledad async API and the upgrades in leap.mail.
@kalikaneko agree, but the point here is how do we document the different failures that the deferred could have. Should we keep the `:raise Excepction: some description` even though this *Exception* is not raised but returned as failure? Or should we do a long description of the `:return: A Deferred ...` with the description of the success and failure values? Or do you see a better way to document it?