Wrap an ExecutorService instead

The RetryingExecutor takes and ExecutorService and instantiates it's own
ScheduledExecutorService. Tasks as scheduled on the scheduler then run on
the ExecutorService. An ExecutorService has a lot of configuration and sizing
properties that are desirable for various workloads.