Add new apis for view state migration and convert the remaining old preferences to the new apis.
Fix the hang issue when viewing a search result with state.json file open.
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.
Implement view states migration from the old preference model.
Added language self names in strings-app.js that will be used in favor of localized version for switch language menu
Merge remote-tracking branch 'origin' into rlim/view-state-migration

# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
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.
Add deprecation warnings for the old APIs.
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 all broken integration tests with one exception -- excluding one failing test in WorkingSetView tests.
Add xit to fix JSLint error.
Store working set files in a project layer.
Fix #6828. Bracketize Win paths returned by node.
Store project tree states in the project layer.
Making changes to review feedbacks.