Merge branch 'release-1.11.6' into devel
Fix an issue that switching multi-scrapbook does not refresh the tree.

(introduced in commit fb85349bd568d41b03fc5febcf31b1ed2613c9cc)
Move common.js and datasource.js to jsm
Quick adjust to make modules work.
Further code replacements.
Fix pref tree.unshift
Fix flush bugs.

- No longer break by window close
- Use a longer delay (10 sec)
- Immediately flush if Firefox is closed.
Merge datasource.js into common.js.
Wrap common used processes into sbCommonUtils.rebuildGlobal() and sbMainService.rebuild(), sbBrowserOverlay.rebuild(). Slightly fix refer to ScrapBook 1.4.0
Move sbMultiBookService.refreshGlobal() to sbCommonUtils.refreshGlobal()
Simplify the call.
These operation may be due to datasource change, add sbDataSource.init() before refreshGlobal() (temp fix)
Hide sbDataSource.init should not be called externally. (Fix external calls later on)
Add datasource.refresh() to handle data source change and global refresh.
Hide sbDataSource.data() variables in the background and use an interface. Do not init until first used.
Rework sbDataSource.refresh() to sbDataSource.checkRefresh(), which refreshes only when prefs at issue changes.
datasource.jsm use sbCommonUtils.alert()
Localize a missed message in the datasource.jsm
Move some process into sbBrowserOverlay.refresh()
Merge similar codes in rebuildGlobal() and refreshGlobal()