spec: refactor term-course-section hierarchy, add coverage
spec: refactor term-course-section hierarchy, add coverage

refs CNVS-28120

Test Plan:
- pass Jenkins
- review test coverage, identify any gaping deficiencies

Change-Id: I867a2195fa26c103fb54bc8a2da158d25b3801b8
Reviewed-on: https://gerrit.instructure.com/74622
Tested-by: Jenkins
Reviewed-by: Davis McClellan <af76235884e05a8dc7aff57674cbcac11e943ac3@instructure.com>
QA-Review: Gentry Beckmann <f487939f789774cca922ca5b886632de73477ea0@instructure.com>
Product-Review: Michael Hargiss <59e3fde81b8d9a4f5e0cc016a3c2695591912604@instructure.com>

djbender/canvas-lms,SwinburneOnline/canvas-lms,venturehive/canvas-lms,HotChalk/canvas-lms,djbender/canvas-lms,roxolan/canvas-lms,SwinburneOnline/canvas-lms,sfu/canvas-lms,venturehive/canvas-lms,dgynn/canvas-lms,grahamb/canvas-lms,roxolan/canvas-lms,instructure/canvas-lms,matematikk-mooc/canvas-lms,sfu/canvas-lms,roxolan/canvas-lms,grahamb/canvas-lms,djbender/canvas-lms,grahamb/canvas-lms,instructure/canvas-lms,roxolan/canvas-lms,HotChalk/canvas-lms,venturehive/canvas-lms,matematikk-mooc/canvas-lms,matematikk-mooc/canvas-lms,instructure/canvas-lms,fronteerio/canvas-lms,sfu/canvas-lms,fronteerio/canvas-lms,dgynn/canvas-lms,matematikk-mooc/canvas-lms,SwinburneOnline/canvas-lms,venturehive/canvas-lms,djbender/canvas-lms,instructure/canvas-lms,dgynn/canvas-lms,fronteerio/canvas-lms,sfu/canvas-lms,instructure/canvas-lms,sfu/canvas-lms,sfu/canvas-lms,grahamb/canvas-lms,HotChalk/canvas-lms,instructure/canvas-lms,HotChalk/canvas-lms,dgynn/canvas-lms,SwinburneOnline/canvas-lms,sfu/canvas-lms,instructure/canvas-lms,grahamb/canvas-lms,fronteerio/canvas-lms