Exercise System Overhaul

Overhaul to the exercise system to allow presentation of data trees in a simple manner.
use ```node.data = node.data || {}```.