added a file save indicator
merge to master
fix
respond to review comments; moved event bus to its own file
Merge pull request #466 from dart-lang/ws

workspace changes to support sync files
Refactored Polymer-vs-non-Polymer in spark.dart using abstract hierarchy vs isPolymer()
Fixed the crash on initializing "#renameDialog" in Polymer UI

The reason was: Polymer didn't like identical element IDs for the file name input control ("#fileName") under two different dialogs, "#fileNewDialog" and "#renameDialog". dialog.querySelector("#fileName") returned the correct element for the former, but null for the latter. The same worked fine in non-Polymer version.
Merge pull request #470 from dart-lang/fix-polymer-crash-on-rename-file-dialog

Fixed the crash on initializing "#renameDialog" in Polymer UI
Fixed <spark-menu>

The <shadow> was somehow causing the element to crash: substituted <shadow> with <content>, which is nearly identical in the context, and it worked.
Fixed <spark-selector>

valueToIndex() was returning a 0 while the list of items was empty, causing a crash. Tried to fix that, and also added caching for items to avoid polling every time. The fix is still a little like poking in the dark, but at least it doesn't crash.
Merge pull request #471 from dart-lang/fix-crashing-polymer-widgets

Fixed crashing polymer widgets
Better styling for <spark-button>
Fixed styling for the edited file name
Merge pull request #472 from dart-lang/polymer-ui-visual-fixes

Polymer UI visual fixes
Merge branch 'master' into 450
Merge pull request #467 from dart-lang/refactor-polymer-vs-non-polymer

Refactored Polymer-vs-non-Polymer in spark.dart using abstract hierarchy vs isPolymer()
feedback, and test
Merge pull request #464 from sunglim/450

dart file use 2space indent
tweaking the save indicator timing and text
Merge pull request #462 from dart-lang/devoncarew_save_status

added a file save indicator