refactor evaluate/deep_evaluate logic

test plan:
 * full regression of all module progression functionality

closes CNVS-11505

Change-Id: I63f542d5d42f950cf9c8117e12ecce4518e2ccf4
Reviewed-on: https://gerrit.instructure.com/30983
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Matt Fairbourn <mfairbourn@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>