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.
Same as above for the undefined check.