pull checks out into checker classes

This feels like overkill but should make running/testing the scheduler a
lot easier since individual checkers are handed the scheduler to dump
future tasks on.