Use icecave/isolator to mock filesystem and getenv.

Discussed in #4, this uses the Isolator class (really just a mock, but its nice to have something to point to) in order to mock out filesystem calls.  These changes mean that the actual filesystem is no longer touched when running the tests.
This rmdir call doesn't seem right to me.  Shouldn't this be `unlink` instead as the `$fallback` isn't a directory and `rmdir` wouldn't work?