Exercise System Overhaul

Overhaul to the exercise system to allow presentation of data trees in a simple manner.
This is the only use of searchTerm, so just do ```_.find(..., {identifier: this.identifier, parentId: null})```.