Use decoded names

Rather than just using the nameString of a symbol we now use the
decoded names. E.g. euqals is now '==' instead of '$eq$eq'

Fixes #1001723
Make sure a file exists before searching the parse tree

Since everything is concurrent we can easily find ourselves in a
situation where the occurrence collector is used on a file that
doesn't exist anymore, so now we make sure that files exist
before trying to traverse the parse-tree.

Fix for #57 on Github
Merge pull request #52 from mads379/1001723-use-decoded-names

Use decoded names
Merge pull request #59 from mads379/github-57-check-that-file-exists

Make sure a file exists before searching the parse tree
Search jobs can be canceled and show progress

The search jobs now show their progress by means of a
total percentage of the occurrences that have to be type-checked and
show which file is being type-checked right now.

Jobs can now also be stopped.

Fixes #1001737
Added NullProgressMonitor
Step 1: Index Classes and Traits
Step 2: Index objects
Step 3: Given a location, find the declaration that contains it
Step 4: Find occurrences in super-position
Step 5: Find all subtypes of a given type