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.
In case of an HTTP error which is not 404, should we raise something so the calling mehod will notice that we failed?

Another related question has to do with the other question above, if the errback of `d` has already been called, why is it useful in the reactor callback/errback chain?