[ThreadPool] Use DirectExecutor instead of deprecated API

Guava deprecated MoreExecutors#sameThreadExecutor in favour of
a more efficient implementation. We should move over to the new impl.