Only check cache for included or excluded files

For example, here’s a hypothetical configuration for broccoli-compass so that changing other files (like `*.js` or `*.html`) in a tree does not cause a rebuild:

```javascript
var outputTree = compileCompass(inputTree, {
  filterFromCache: {
    include: [
      '**/*.{scss,sass}'    // only base the input tree’s hash on *.scss and *.sass files
    ]
  }
});
```

Note, this does _not_ affect what files make it to the output tree at all, rather it only makes it easier for subclasses to only rebuild when file types they care about change.

Also, I'm relatively new to broccoli and its approach to incremental builds, so I'm not sure if it preferred to solve things a different way (such as filtering the tree to only Sass files before it hits this writer?).

ps: I’m not sold at all on the `filterFromCache` name. But I was trying to be explicit and prevent intersecting with existing/future subclasses.
For now, lets leave this outside of the prototype. This hardlinking is generally unsafe in some scenarios under OSX.  I will be updating in the next few days to use symlinking instead, and will put this on the prototype when it is safe for inheritors to call...