Factor out the Scheduler lock.

Inject the scheduler lock object everywhere it is needed. Also break
up the "parent injection" pattern which is not needed with DI for the
poller classes that hang off SingularityLeaderOnlyPoller.