Bug 498371 - Refactor Search to use ASTParser

Changes JSDT indexing and matching to use ASTVisitors on
AST generated by ASTParser instead of the older parsing
engine. For indexing, the change is relatively simple as
the previous file index structure is used. For matching
(locating search results within a file), the change
greatly simplifies the code.

With these changes, indexing and matching is much more
robust, with better consistency in search results.
Highlights include indexing String object properties
and ES6 classes and constructs. Additionally, it should
be easier to keep this mechanism up to date as JavaScript
develops.

Currently, the main bottleneck in performance is in AST
generation; the visitors consume a negligible proportion
of time.

Change-Id: I6017d81a60001e307ce89ad4a779ef2080d5c7ed
Signed-off-by: Angel Misevski <amisevsk@redhat.com>
Signed-off-by: Victor Rubezhny <vrubezhny@redhat.com>
49 files changed