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 :)
Personally, I'd case all template vars with TitleCase (or all caps if appropiate eg: CSS) as that's kind of a template convention, isn't it?

`$CustomCSS()` in the template is nicer than `$customCSS`