Test runner enhancements

These changes mostly come from an internal project to provide some flexibility to the test runner.  Swarm tests, which require a running MySQL instance, are moved to integration-level tests, which are are invoked with the `-i` flag to `run_tests.sh`.  The swarm tests can also be invoked by using the just-added `-e` flag for specifying test list files: `run_tests.sh -e tests/engine.testlist`.