Isolating Metric Code From Hotspot Analzyer

* Factored out discrete parts of hotspot analyzer (to try to understand it and what each part depends on and does)
* Moved metric-specific code out of hotspot analyzer and into their respective hotspot classes
* Updated TODO