Extract fixture loading into a global function.

While a bit janky it will work for now.
Add concrete MongoIds to fixtures + fixture loader.

You cannot use anything but a 24byte hex string as a mongoid. Mongo will
ignore you and generate a new id.
Add basic test for getting callgraph data.

This test expects there not to be callgraph data as that is being moved
to a new controller action that only does that.
Split out callgraphData method.

Add some very basic sanity tests around callgraphData() method.
Add exception to get() when there is no profile data.
Wire route + template together.

JSON data is now fetched for callgraphs. This will enable more
interactive callgraphs to be built in the future.
Remove dead code.
Add code to extract callgraph for any valid metric.
Prototype UI hooked up for variable callgraph UI.
Make Tooltip more unique across the page.

Just using .popover leads to bad results when other parts of the UI have
popovers.
Start integrating the UI + PHP code together.
Use a select instead of radios.

Radios were a bit unwieldy and painful to use. Also the dialog was
a shitter to position.
Use exclusive values when generating callgraph data.

Having access to exclusive values means callgraphs can be generated
for exclusive metrics which can yield more insightful data.
Fix not being able to toggle popover with the original button.
Tweaks.
Start to build max value generation for exclusive metrics.

exclusive metrics cannot use main() to generate the 'max' value. Using
the inclusive times to generate times for exclusive metrics also does
not work. Hopefully scaling exclusive metrics amongst themselves will
yield more useful results.
Fix reducer function.

Using the max value allows a more reasonable graph to be generated.
Unfortunately it also means you need to have wildly differnt
measurements to get a graph at all.
Update some HTML.
Re-position popover dynamically.
Fix failing test.