Integrated editor with ContentProviders

This is a big PR, but was as small as I could manage.  This integrates ContentProviders into the editor, NavigationManager, tabs, events, file selection (when dealing with files), file search, closing, and parts of rename.

Note: Commit https://github.com/dart-lang/chromedeveditor/commit/21d194ff1ad7274397632982b793bbdee184a3a2 should have read: Handled tabs, events, comparator, `NavigationManager`, and openFile instead of `TEMP`

Fixes #3433
Review @devoncarew 
Not for this PR, but I think this code can be improved if we use the adapter pattern. Something like:
```
File file = currentProvider.adapt(File);
if (file != null) {
  ...
}
```
https://github.com/dart-lang/chromedeveditor/blob/master/cde-core.dart/lib/adaptable.dart
https://github.com/dart-lang/chromedeveditor/blob/master/cde-core.dart/test/adaptable_test.dart