Adds option for strongly preferred prefix and single segment search.

These options make stringMatch produce useful and predictable results in cases that are not
quite the same as file searching (such as code hinting).
Turn on preferPrefixMatches for JS code hints.

Adding this option to string matching provides a fix for #3534 by putting
the matches at the same score and using the scope as a tie breaker.
Extract function to create prefix search result.

...and some other small changes based on review feedback
Allow mulitple modal dialogs to work together by maintaing a stack of keydownHandlers, only the top-most of which are enabled.
Rename keydownListeners to _keydownListeners and add JSDoc type annotation; port over @njx's escape-handler fix from 3c6bafd55ccce27644f5aec7eae75981e91ec316.
fix unit tests, and explain why they are hacky
Merge branch 'master' into dangoor/prefer-prefix

Conflicts:
	src/extensions/default/JavaScriptCodeHints/main.js
Rename singleSegmentSearch StringMatch option to segmentedSearch. Defaults to false
(which is a change in behavior for quick navigate that should actually be fine for
those uses). Also augmented the test cases based on review feedback.
Fix hinting so it always works in an HTML file.

We were not creating a Session if the language of the selection was not javascript.  So when opening an html file, if the cursor wasn't in a javascript section, we would get no hints.
Load default JSLint enabled status from a config file.
destroy modalBar after last occurence is replaced
Updated by ALF automation.
Quick Open plugins can include matcherOptions to set StringMatch options
Fix JSCodeHint tests so they pass when running all tests.

One of the promises the code hinter was waiting for internally was never being resolved because the directory it was looking for didn't exist.  Now resolve the promise even when the director doesn't exist so we don't just hang.
Merge pull request #3821 from eztierney/unittest-bug

Fix JSCodeHint tests so they pass when running all tests.
Only init a Session for html & js files
Merge branch 'master' into html-hint-bug

Conflicts:
	src/extensions/default/JavaScriptCodeHints/ScopeManager.js
Don't need to call initializeSession from unittests anymore
Fix for #3589. In code hints, sort leading _ names to bottom.

This also alters StringMatch.multiFieldSort to use an array to define the sort order,
though I stopped short of deprecating the old { key: priority } format.
Merge pull request #3810 from eztierney/html-hint-bug

Fix hinting so it always works in an HTML file.