Added scheduleAtFixedRate to SimpleSchedulerInterface

I found a way to implement this with minimal to no impact to the normal execution case.  By having this implemented in PriorityScheduler and SingleThreadScheduler, it makes their ExecutorServiceWrapper much simpler.

I doubt there are scheduler implementations for our interfaces that are outside of our project.  So I don't consider this a non-backwards compatible change.  It is designed to be an expansion of our feature set, as well as hopefully simplifying _some_ code (I guess while making others more complex).
In FixedRate implementations, we just adding the period (or delay) to it after each run.  If nextRunTime is in the past, then nextRunTime - now() will be negative, meaning an immediate execution will be scheduled (0 delay).  If the execute faster than the period, then nextRunTime will increase faster than real time, until a delay should occur to enforce a rate.

The pattern for the other implementations (ie PriorityScheduler) work on this basic principal.  Just tracking absolute time, and adding a known amount to have a fixed period.