Introduced ScheduledExecutorServiceTimer

ScheduledThreadPoolTimer doesn't allow creating a Timer instance around a pre-existing ScheduledExecutorService.

My fix introduces a new class, ScheduledExecutorServiceTimer, which is spawned from ScheduledThreadPoolTimer. The latter now extends the former and only handles the construction of a ThreadPoolScheduler based on the constructor arguments, passing the resulting ScheduledExecutorService to the super constructor.