more granular transactions in grading [LMS-1480]

remove field_data_cache from grades.grade and grades.progress_summary

cleans grading code by adding wrappers

This is essentially #1655 , which was reverted by #1669 because it was thought to cause worker timeouts when grading was being run. Further analysis suggests the timeouts were unrelated to grading being run.

The only difference is that it no longer filters StudentModule by `module_type`; it's enough to filter by `module_state_key`

unreverting back into master
@ormsbee 
@brianhw