Refactor CSS loaders

:bomb: This is WIP. Opening a PR in case anyone wants to chime in and share their thoughts.

I'm planning on using a kind of middleware for the loading of the CSS. A sequence of loaders in a predefined order. If a loader is not able to load the CSS, he passes the task on to the next loader in line. This allows for a cache loader à la:

```ruby
def load(url)
  @cache.fetch(url) { stack.next }
end
```