Collect changes and pass them to the tasks

The ChangeDistributor receives change events from Grunt and records
them in a map. Consumers can use the defineProperty() method to
create dynamic properties with the changed files.
Also: bundle the RequiresJS and WidgetCollector setup in
lib/application.js
Rename widget collector (-> flow tracer)

Start adding capability to find referenced layouts
Find layouts used in layout widgets
Handle layouts