ISPN-2962 Fix thread leaks in the core test suite

* Several tests do not shutdown their Executors or fail to stop an AsyncStore (notably AsyncStoreTest and AsyncStoreStressTest), leading to stray threads after the suite is run.
* DistributedExecutorTest and ReplSyncDistributedExecutorTest ocasionally swallow an interrupt preventing the pooled thread to stop when it is returned back to the pool and tries to take() the next task to execute.
* Print all the threads at the end of the test suite that were not already present at the beginning. These are leak suspects.
ISPN-2477 AsyncStore shutdown can leak threads

Partially solves ISPN-2477
* There were two exit points in the AsyncStoreCoordinator loop, and only one of them stopped the worker thread pool.
* AsyncStoreCoordinator must force the worker threads to shut down via interrupt if the initial attempt to shutdown the executor pool did not finish in time and some workers might still be running.