make MetricsEmittingExecutorService listenable
use Guava's ForwardingExecutorService instead of DelegatingExecutorService