Geo scheduler worker refactoring

Noted while working on https://gitlab.com/gitlab-org/gitlab-ee/issues/5555

At some point, we significantly refactored our schedulers to have a fairly complex inheritance hierarchy. We didn't refactor the specs at the same time, so a great deal of functionality which moved into the superclasses doesn't have tests in the superclasses.

We could resolve this by moving (and potentially deduplicating) the tests. We could also consider replacing the inheritance hierarchy with something else - a service of some kind, perhaps.

Assignee Loading
Time tracking Loading