Exercise System Overhaul

Overhaul to the exercise system to allow presentation of data trees in a simple manner.
````
@param {Array.<Category>} data.categories The categories used by the calculation.
````