Remove welcome project duplicate fix

Clean up welcomeProjectsFixed code - Issue #2823
Keyboard shortcut for open folder
update usage of new Dialogs API: done() does not chain, command handlers should return a promise.
Backend changes to check extension update needs.

Exposing ALREADY_INSTALLED state to the UI.

completely handles the case of an already installed extension the installation of which
is canceled at confirmation time.

Install extension dialog handles NEEDS_UPDATE case and also passes
along the installed extension information to the caller.

Extension Manager now displays update mark and allows undo.

Checkpointing frontend work for installing update

Supports installation of updates.
Add ability to create multiple global key handlers that override KeyBindingManager. Refactor dialogs and code hints to use this.
Synchronized the menu sections with the current menus
Fix the minor review comments for extension update.
Change ExtensionManager to track legacy extensions by directory name.

This makes the behavior consistent with how the Node code tracks
legacy extensions for installation and enables the update code to work.
Different messages for non-upgrades.

Display a different warning message if the version being installed
is the same or older than the currently installed version (rather than
the generic "already installed" message that we display when we don't
have a package.json).
Bug fix for same/older version installation.
Only load fully installed extensions.
add missing test file.
Minor fix so that installed zip files are deleted.
ShellAPI should expect commands to return undefined or a promise
Better error handling when installing updates.

Update installation should generally not fail given the checks that
happen on the first pass of installation, but if they do we have
a reasonable display for the user and a way to get at the root
error.

Also cleaned up some of the extra braces in the extension manager
strings.
Remove ExtensionManagerView.handleNewInstall.

@njx brought this up in review. This method does seem superfluous
and removing it allows the model to notify the view that a change in
state has occurred.
Merge pull request #4105 from adobe/dangoor/update-check

Install update workflow
Change 'global keydown handler' terminology to 'global keydown hook' to clarify that these don't work like ordinary event handlers.
code review comments
Align equals signs