make apostrophe lass fancy (#3976)
Fix the buttons order in the Install with URL dialog
fix italian
undo/resubmit italian
update usage of new Dialogs API: done() does not chain, command handlers should return a promise.
update not yet translated version of Italian page to current English page
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.
Add a margin left to all the none left buttons
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.
Merge pull request #4113 from TomMalbran/tom/issue-4091

Fix #4091: Order of OK and Cancel buttons is reversed
ShellAPI should expect commands to return undefined or a promise
Merge pull request #4092 from adobe/jeff/fix_sample_quotes

Fix Sample index.html
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.