Use smart-content-change to sync model with editor content

Calling getContents() on the editor is very expensive and doing this twice
a second really kills performance. Only do this when there is changed content.
Shorten the delay for smart-content-changed.

This shortens the delay to two seconds instead of Five. It means your Save
Button should become available sooner and users won't think something is wrong
if the make a small inline change and nothing happens, at least immediately.
Merge branch 'performance-enhancements' into testing