sftp: refactor and move to qcoro in preparation of sftp_aio
also see https://gitlab.com/libssh/libssh-mirror/-/merge_requests/375
this entire change set is largely in preparation of sftp_aio and the deprecation of sftp_async. by turning the producers and consumers into co-routines switching between the two should only be a matter of changing the surface coroutines. also sftp_aio looks to be providing a lot of the encapsulation we had in GetRequest so it likely won't need to be an object any longer but get away with its implementation inside a single coroutine