Namespaced

Css files will be namespaced, compiler.js now screams refactor so that File has more properties (e.g. hash, etc) and just provide a File instance to both `#namespace` and `#register`, and allow doing stuff like

```
File.prototype.is = function is(type) {
  return this.extname === '.' + type;
}

// to allow if (file.is('css')) return fn(null, file); in namespace.
```

If you agree i'll refactor it + perpaps make register async as well