cssrewrite filter operated on filesystem level, not in the URL space. This is because historically, they have been the same. This required some adjustments in the filter API, so we can pass the non-rewritten file path to filters. Official policy now is that filters must accept **kw. On the place side, the CSSUrlReplace base class became a lot simpler, no longer needing to (badly) reimplement absurl(). Will hopefully also fix (or help fix) the equivalent issue with Flask blueprints.
This looks for a string (e.g 'my_bundle') in the `contents` list of a bundle. If that string has previously been made into a Bundle instance, it replaces the string with that Bundle. TODO: this doesn't protect against circular imports yet.