Fixed #20550 -- add ability to preserve test db between runs

This adds the `--keepdb` to the test runner, which allows the database to be preserved between test runs.

Currently, I have one failing test on this, `test_runner.tests.AliasedDatabaseTeardownTest.test_setup_aliased_databases`. I'm not exactly sure why it is failing, so if anyone could give me some pointers on this, that would be great. (apologies if this is not the place to as for such feedback).

@timgraham  - git blame tells me that you were the one who wrote this test, perhaps you could shed some light here?

Thanks!