Make tests run and pass in random orders

Running tests in random order exposes potential dependencies to stale data.

* Clear out some class-level variables that cache values from previous tests
* Don't mutate the configuration object in tests:
  * Mutating the global config object affects other tests. Tests should be able
    to be run in random order. This fixes errors that surfaced when running in
    random order.
Merge pull request #1250 from gylaz/random-order-tests

Make tests run and pass in random orders