ApiVisualEditor constructs on EditPage to be able to retrieve the formatted "templates on this page" list.
It should be possible to get the formatted list without using an EditPage object
While a new system is being created for retrieving the formatted list, `TemplatesOnThisPageFormatter` should have a factory rather than callers needing to independently provide a LinkRenderer, and the PermissionManager that is used should be injected rather than retrieved from `MediaWikiServices::getInstance()`
Plan:
[] Add a `TemplatesOnThisPageFormatterFactory` to create `TemplatesOnThisPageFormatter` objects
[] Add a PermissionManager as an optional dependency, hard deprecate not providing it (callers should not construct the class directly, but should use the factory)
[] Add a method to the Formatter to get the list wrapped in a `div` with the `templatesUsed` class, as currently provided by `EditPage::makeTemplatesOnThisPageList`
[] Add a PermissionManager as an optional dependency, hard deprecate not providing it (callers should not construct the class directly, but should use the factory)
[] Replace the use of the EditPage object in ApiVisualEditor that relies on `makeTemplatesOnThisPageList` (use the new factory instead)
[] Deprecate `EditPage::makeTemplatesOnThisPageList`