WIP - Integrate visual styling into the course outline

STUD-1849
It is intended to be all descendants so I'll change the comment. I never read 'all children' to mean 'all immediate children' but that's probably just me.

The logic is definitely descending deep because it is analyzing the child info objects, each of which was in turn computed recursively. So this function doesn't have to re-descened into the grandchildren etc because that information is already supplied in the child info.