Extracted the common implementation out of PriorityScheduledExecutorServiceWrapper and into AbstractExecutorServiceWrapper
This resolves #82.  Once the common implementation was extracted out it was easy to add the wrapper for the SingleThreadScheduler (SingleThreadSchedulerServiceWrapper).
As this was unit tested, I recognized that I had not applied the unit test improvements to PriorityScheduledExecutorServiceWrapperTest, so we were able to save a lot of code there.  In addition a couple bugs were solved as the testing was improved.
Overall I am very happy with how these changes went.