Add ability to stop drivers

This adds an optional method to the driver interface that will stop a
driver when the scheduler's connections object is stopped. This is
useful to clean up drivers that have state that are not connections. In
particular it prevents timers from leaking apscheduler threads all over
the test suite.

For defensive purposes we add code to start a new apsched within the
driver if the driver has been previously stopped. This is because
without having connection objects which can be replaced the driver may
stay in use though it currently only stops when the scheduler stops.

Change-Id: Ibfc638d88c77f18bdc9f9509776a665a9edfc2ae
3 files changed