Using DI for all hook access means that it becomes significantly easier
to mock hooks and callbacks for unit testing without fundamentally
altering the structure of the code purely for the purposes of unit
testing.
This change replaces the requirement for:
- \core\hook\deprecated_callback_replacement
- \core\hook\described_hook
These are replaced by appropriate Attributes.