Always start with a clean test directory.

o We previously had tests cleaning out their test directory or not
  seemingly at random. In most cases it's fine to start with a clean
  directory, which simplifies things.

o We have a few cases which genuninely need to get hold of the test
  directory without cleaning it out. Most of these are part-way through
  a test where we need to start a database running against an existing
  store.

o The interface of TestDirectory has been changed to get rid of boolean
  flags and have intention-revealling method names instead.