Use the Arkindex S3 client in Ponos
Closes #1596 (closed)
I updated the Artifact model to use the S3FileMixin to deduplicate the URL generation code, and created a TaskLogs class to match the Thumbnail class used to store thumbnails on folders, so everything uses the mixin.
I struggled with the unit test mocks as I was getting RecursionErrors that even the VSCode Python debugger would not catch. I learnt about sealing mocks to get AttributeError when an attribute was not mocked, so I added that all over the relevant tests to get unstuck. I might make the use of seal() into a brand new best practice with how much faster it is to troubleshoot with it.