Use `log.Fatal()` rather than `panic()`

It's more user-friendly as it simply prints a string and exits with a
status code of 1.

`panic()`, on the other hand, prints a backtrace which is decidedly
_not_ user-friendly.
Check for MIRROR_ROOT env var in tests

So that the tests fail fast if no mirror root is specified and don't
write files relative to the current working directory.

Use `log.Fatal()` rather than `expect` because:

- I prefer to reserve `expect` for specific conditions we're testing
- Because we're not using mocks, it's not very obvious which tests
  actually write to disk. Therefore it makes sense to check the value of
  mirrorRoot as soon as we set its value in `BeforeEach()`.