reapply more modular transactions in grading (LMS-1480)

removes field_data_cache from grades.grade and grades.progress_summary

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.

This PR differs from #1655 in two aspects:
1) Instead of creating a context manager for more fine-grained control over transactions, the PR uses django's [transaction.commit_on_success](https://docs.djangoproject.com/en/1.4/topics/db/transactions/#controlling-transaction-management-in-views).

2) When pulling problems out of the StudentModule model, we now look for xmodules of types "problem" <strong>and</and> "combinedopenended". In #1655 's implementation, "combinedopenended" problems would be left ungraded.

@cpennington 
@brianhw -- would "[auto.commit](https://docs.djangoproject.com/en/1.4/topics/db/transactions/#django.db.transaction.autocommit)" be the better transaction to use in its context manager form?