UI Code for type-hierarchy view

This PR is a bit messy, sorry about that. I had to change some of the
main abstractions used to pass information between the SearchPresentationCompiler
and the rest of the code.

- We now have our own little abstraction for Scala entities called Entity. It
  simply represents a Scala enity (Type, Class, Trait, etc) and a Location where
  the entity was spotted.
- Before we used Hit/PotentialHit to represent the result of checking a single
  occurrence to see see if it matched the entity we were looking for. This has
  been changed to a more generic container called Confidence (Certain/Uncertain)
  which in the case of finding occurrences contains a Hit. In the case of finding
  subtypes it contains a TypeEntity.

Fixes #1001764
Remove 'contextId' from type hierarchy binding

The 'contextId' is used to restrict the "scope" of a binding. In
this case I used it to make sure that our type hierarchy could
only be invoked from inside a scala editor. But someting whent
fishy and the key binding would only work for the first invocation

I have a feeling this might have something to do with the fact that
the Scala editor isn't a real scala editor yet but a little
aspect hack.
Merge pull request #62 from mads379/1001764-type-hierarchy-ui

UI Code for type-hierarchy view