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
The default window.isNaN [is broken](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isNaN). You need to use Number.isNaN for an accurate check, and that's only available in ES6, so I wrote my own implementation based on the fact that NaN has the type `'number'` and is the only value that does not strictly equal itself.