New css loader plugin

This is a proposal for a new css loader plugin that would inject plain css files instead of js-wrapped ones as it is done today.
It is based on the XStyle's css loader (https://github.com/kriszyp/xstyle/blob/master/core/load-css.js).
The stylesheets are loaded via injected ```<link>``` tags and the plugin will notify the module when the stylesheets have been loaded. Since not all browsers support the ```onload``` event on ```<link>``` elements (concretely, it's all webkit-based browsers with a webkit build <= 535), it also provides an alternate code path to check when the stylesheet is ready using a timeout...

This css loader pluging also contains the code required by the build system to build css layers (cc @clmath).
You are calling `createLink()` unnecessarily in the case when the resource is already injected.  Probably the `loaded()` method should just take the URL, rather than this `params` object.

Actually, this would all probably be more straightforward if `cache[]` contained promises for all the links, then here you could just say something like:

```
all(resources.map(require.toUrl).map(function (url) {
    if (cache[url]) { return cache[url]; }

    var link = createLink();
    link.href = url;

    var head = document.head || document.getElementsByTagName("head")[0];
    head.insertBefore(link, lastInsertedLink ? lastInsertedLink.nextSibling : head.firstChild);
    lastInsertedLink = link;

    return cache[url] = loadDetector(link);
})).then(function () {
   callback(link.sheet || link.styleSheet);
});
```