More tests for recursive delete and move

I've been trying to get this to work for a while now, and I think the S3 mock needs a rewrite. The main problem is that there's no way to provide the same error codes as the real S3 API, since it's implemented using the WebDAV client and there's far fewer error codes there, so there's no 1-to-1 mapping.

Since the WebDAV server is now using a fake filesystem anyway, I think it would make more sense for the S3 mock to just import the same filesystem object and use that to provide the API, no WebDAV needed. Since the whole S3 mock should be rewritten, can we just merge these new tests with the S3 ones excluded and then remove the `if (fs.supportsRecursive)` once the new mock is in place?