Stores occurrences of methods in Lucene

The plugin now keeps an Index (using Lucene) of all the places
methods are mentioned in the code-base. A separate Lucene index
is created on disk for each project.

The initial indices will be created upon start-up if no index
exists already. It will index the entire workspace and traverse
the parse-tree of all Scala sources.

For each project in the workspace we create a background job that
continuously update the index and re-index files that have changed.

There are two separate tests: OccurrenceCollectorTest contains test
that make sure we record the correct information from the parse trees
and IndexTest that makes sure the occurrence information can be stored
and retrieved from Lucene.

Fix #1001602