proof of concept simple caching for #2496.

Notably, this also stops generating the function list on every search call.
small bit of cleanup
adds tests, comments and makes the plugins use the new StringMatcher.
responded to review feedback
update the QuickOpen plugin comment for the "search" property per
review feedback.
Merge pull request #2637 from adobe/dangoor/speedygoto

Fixes #2496 (simple caching to speed up quickopen/go to definition)