Import sftp-directory-mirror.py from ci-tooling
That is used to upload Craft cache build results.
This is unchanged compared to the version in ci-tooling apart from adding the two helper methods at the top that were previously provided by an external component.
I suspect we need to adjust the key loading to Gitlab somehow?