Adam/more granular grading transactions

Makes grading transactions more granular by loading each course section in a single transaction.

Manually manages transactions in grades.grade, grades.progress_summary, and courseware.views.progress

@cpennington 
@ormsbee