API: Update Requirements to use Injector and Config

- Rename `Requirements_Backend` to `RequirementsHandler` - `Requirements_Backend` is now an interface for the required methods
- Switch to the `Config` API for setting various static properties
- Update names of methods to be more consistent with coding conventions
- Update unit tests and existing uses of `Requirements` in core

All comments are welcome :)