resource notification changes

This CL is a work in progress. It's intent is to change the resource change notifications, so that we get change deltas for all files. Before, a container add or delete would only send an event with one change delta. Now, we get a event that contains deltas for all added files and folders in that container. This makes code clearer when you are listening for adds and deletes of specific files. Also, if simplifies code for builders, when a new folder w content is added.

There is an issue w/ this CL w/ the files view. We have a race condition, where the files view is trying to get information about a new folder (`cache`), which is has not yet been informed about. To repro, create a new dart web app project. It will be created; pub will run; and you'll get an exception when the files view tries to refresh itself.

@dinhviethoa

```
Uncaught Error: 'chrome-extension://kcjgcakhgelcejampmijgkjkadfcncjl/lib/ui/files_controller.dart': Failed assertion: line 163 pos 14: 'resource != null' is not true.
Stack Trace: 
#0      FilesController.treeViewCellForNode (chrome-extension://kcjgcakhgelcejampmijgkjkadfcncjl/lib/ui/files_controller.dart:163:14)
#1      TreeView.listViewCellForRow (chrome-extension://kcjgcakhgelcejampmijgkjkadfcncjl/lib/ui/widgets/treeview.dart:262:38)
#2      ListView.reloadData (chrome-extension://kcjgcakhgelcejampmijgkjkadfcncjl/lib/ui/widgets/listview.dart:150:46)
#3      TreeView.reloadData (chrome-extension://kcjgcakhgelcejampmijgkjkadfcncjl/lib/ui/widgets/treeview.dart:148:25)
#4      FilesController._reloadData (chrome-extension://kcjgcakhgelcejampmijgkjkadfcncjl/lib/ui/files_controller.dart:583:25)
#5      FilesController._processEvents (chrome-extension://kcjgcakhgelcejampmijgkjkadfcncjl/lib/ui/files_controller.dart:627:16)
#6      FilesController.FilesController.<anonymous closure> (chrome-extension://kcjgcakhgelcejampmijgkjkadfcncjl/lib/ui/files_controller.dart:67:41)
```