Refactoring the unit tests.

We can now have:
* General tests that do not interact with `fs`. These are in tests/general.
* Backend-specific tests that interact with `fs` when loaded with a
  particular backend. These go in tests/fs/backendname.
* FS tests. These go in tests/fs/all.

Thus, we no longer run general tests once for each backend type, and the
tests run a bit faster now.