runtime: big commit post hackfest, all of the following will eventually
be squashed and rebased to be a large atomic commit.

The current status:
 * ctrl port shows a tooltip with 5 counters (very easy to change which ones)
 * ctrl port allows selection of counter used to scale blocks in graph
 * ctrl port crashes when going to bar graph view
 * FDs are opened and closed with every iteration of work function
    The goal is to move the open and close to constructor/destructor,
    but that doesn't seem to put out reasonable numbers.
 * The ratios calculated don't seem correct, but my dummy program
    that does the exact same process to read and calculate counters
    does put out reasonable numbers

TODO (aside from fixing the above issues):
 * wrap up linux specific code in ifdef's
 * check that kernel supports counters
 * make ctrl port (especially the tooltip) work with counters
    that may not exist. There's currently an assumption that
    all counters exist, or ctrl port doesn't build.