Do not reprocess if input trees are not changed.

Currently, `Writer.prototype.write` is called every time any tree is invalidated. This results in a fairly significant performance issue (as shelling out is slow). `broccoli-caching-writer` will only call `updateCache` if the input trees have changed.