Initial working implementation.

Missing documentation, test failures. This is primarily for review.
Document Async.waitForAll.
Fix unit tests.

Clean-up all the structures on remove: remove/add is used to setup the
tests.
Document the implementation.
Added language self names in strings-app.js that will be used in favor of localized version for switch language menu
Reinstall "user" backed by memory if load fails

"user" scope is treated differently than the rest of the scopes. if it
fails, then "user" scope is installed using memory storage.
additionally, when it fails due to ParsingError, the user is warned and
the configuration file is loaded so that it could be fixed.
Fix JSHint error.
Fix unit test failures.
Merge remote-tracking branch 'upstream/dangoor/6578-hidden-editor-options' into fix-6660

Seemingly working merge with current work by @dangoor in #6715.

Conflicts:
	src/preferences/PreferencesBase.js
	src/preferences/PreferencesManager.js
Fix #6828. Bracketize Win paths returned by node.
Check the path following the prefix the right way since on Windows the path does not start with "/".
Making sure line error background color always overrides other background color.
Merge remote-tracking branch 'upstream/master' into fix-6660

Conflicts:
	src/preferences/PreferencesBase.js
Add the rest of the scopes always.
check for jquery property instead of instanceof
Fix view state migration issue by adjusting the file path strings handling.
Fix #6954 by migrating all "panelState" preferences if the key is a valid one.
Made "Show in OS" OS-specific
Merge branch 'master' into 6587-switch-language-uses-self-name
Merge pull request #6938 from adobe/rlim/project-path-migration

Fix the project view state migration issue.