Finish converting unit test suites to shared suite

This PR finishes the works started in #42 and moves all tests for the FSP events into a generic top-level unit test suite that can be imported by every provider.

Before this can be merged, some bugs need to be fixed. For example, as described in #8, the WebDAV client does not return the correct size of a file in the metadata call, so the shared test breaks for it.

Closes #18
It is valid to set  the character set in this form.  But this is S3 handler.  Having this change because your local webdav server implementation is doing so doesn't sound correct.  Please fix your webdav server to omit the charset.
Further questions: does fileSystemProvider API allow charset?  If set, what will happen?

By the way, I think s3 data is most likely binary.  why wasn't this application/octet-stream?