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.
Merge pull request #2209 from benbc/2.0-always-start-with-a-clean-test-directory

Always start with a clean test directory.