Split up the outputResults function.
Split result-generation into more functions.
Merge branch 'master' into detailed_results
Made the result-gathering code easier to extend.

Now we use (measurement name -> value) maps instead of arrays, so:
* it is harder to accidentally access the wrong value; and
* it should be easy to add new values that are measured from
  experiments.