add an initial QuickOpen test.
added longestCommonSubstring to quickopen file.

this is just a checkpoint. my current plan is to remove that
function because it slows things down too much
fix 2068: rework quickopen logic to produce better results

Created a new QuickOpen matching algorithm that searches for matches
among "special characters" (path markers, camelCase changes) and
does so left-to-right rather than right-to-left as in the old algorithm.
The new algorithm does still give an added bonus to matches that occur
within the filename, which is checked first.

Also, there is now a collection of tests to try out the QuickOpen logic
and ensure that it is working sanely.

The scores look pretty sane now.

In this commit, I added some code to help debug scores and was
able to get the scores to be pretty sane and the results look quite
nice.

I also removed the dead code.

fix a display bug when there is no query

added comments for new QuickOpen algorithm.

Note that in the process I spotted a bug and added a failing test,
which I have not had a chance to fix yet.

partial fix for a bug in the new quickopen logic

fixed the bug with strings that are longer than the final segment

fix an off-by-one problem that left an initial character match out of
the last segment
first round of cleanup based on pflynn's review feedback. checkpointing
here because I'm going to work on some changes that I might want to
roll back (merging lastMatchedIndex and lastRangeCharacter)
merge lastRangeCharacter and lastMatchedIndex into lastMatchIndex
a bunch of changes per pflynn's code review, including some
variable/function renames for clarity.

Note that there is currently a failing test. I wanted to put scoring
changes into a separate commit, and that should fix the failing test.
adds a penalty for matches that don't start on a special character,
which fixes the failing test for samples/index
pull the stringMatch code out of QuickOpen and into a new module
review comment responses and the addition of two failing tests that
illustrate bugs found during review
adds backtracking to fix cases where matches that should be found are not.
also improves scoring in a number of cases.
mostly doc changes per review feedback.

There were also a couple of minor code changes (variable renames and such)
but no algorithmic changes.
add notes on how the matching algorithm works, from @peterflynn's
comment.
Merge branch 'master' into dangoor/fix-2068

Conflicts:
	src/search/QuickOpen.js
fix _computerangesa not matching _computeRangesAndScore.

The problem was that backtrackTo was causing backtracking to go
too far back for the "s", because it had already backtracked to
the "r" previously (when it hit the "g" in the query).
backtrackTo was the original mechanism I used in backtracking
before adding deadBranches. It turns out that backtracking
really needs to go back before deadBranches[queryCounter],
because where we need to backtrack to depends on where we are
in the query.
scoring tweak to improve results in certain cases (tests added).

@peterflynn noted that "jsutil" matched "JSLintUtils.js" over "JSUtils.js".
This change gives a significant boost to consecutive matches that started
on a special character. I also boosted specials a little more to
balance out specials vs. consecutive matches.
Merge pull request #2462 from adobe/dangoor/fix-2068

Fix for #2068: better QuickOpen heuristics