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
- Move `Requirements_Backend->combine_js_with_jsmin` and `write_header_comment` to `Config`, use `__set()` to deprecate them
- Update names of static methods to be more consistent with coding conventions (existing template syntax preserved with `TemplateGlobalProvider`)
- Update unit tests and existing uses of `Requirements` in core

All comments are welcome :)
Just read the rest of the code, this is being done anyway. :) (I think I was the one who put it there eh!)