Add support for write operations to S3FS

This is just to implement `onWriteFileRequested` for S3FS

Begins work on #41 
Closes #70

Tasks

- [x] Update WebDAV client to have HTTP PUT method so the S3 mock library can write files
- [x] Create new test case for writing files and checking written data is correct 
- [ ] Update `onOpenFileRequested` to accept the `create: true` flag and create the file accordingly if present
- [x] Update the tests for `onOpenFileRequested` so it no longer expects requests with `create: true` to fail.
- [x] Update test server logic to
  - Remove created files
  - Revert edited files
  - Restore deleted files
  
  after the test suite is run so the filesystem state is the same every time the tests start
Yeah, I mentioned in my comment above that this an implementation detail of the S3 and WebDAV libraries. I will change this so as not to rely on behaviour that is not part of the spec. Please let me know your thoughts though on how to handle the differences here (FSP requires explicit create, WebDAV and S3 do it automatically on write.