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.
Given that an unrrelated `IndexError` might occur inside the `get_key()` call, how about if we modify it by first adding a custom exception `UnsupportedKeyTypeError` and a helper method:

    def _assert_supported_key_type(self, key):
        try:
            leap_assert(type(key) in self._wrapper_map)
        except IndexError:
            raise UnsupportedKeyTypeError(type(key))

Then we could just use that whenever we need to verify for supported key types.

This comment is also valid for the previous (and other) try/except clauses that want to fail for unsupported key types.