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.