LinkBatch currently uses several services directly by calling the service locator.
This makes testing code using LinkBatch complex, requiring the usage of integration tests that call setService.
LinkBatch should instead have all required services (LinkCache, TitleFormatter, ContentLanguage, GenderCache and LoadBalancer) injected instead, by making construction through a factory service mandatory.
For compatibility, the constructor should make all services optional, falling back to calling the service locator in the constructor when the services are not provided.