Improve performance of mapping graders to criteria

This continues the pattern of doing bulk operations for mapping graders
to groupings, which solves the n+1 query problem.
Get rid of an eagerly loaded Grouping association

The ta_memberships association and its user association are used by view
and are eagerly loaded, so instead of introducing another `ta`
association to be loaded eagerly, we can simply reuse
`ta_memberships.user`. This reduces memory usage.
Add factories for assignment marking scheme

This is useful in specs that are dependent on the marking scheme of the
assignment, e.g., rubric criteria need to be associated with an
assignment with rubric marking scheme.
Specify assigning/unassigning graders to criteria
Fix functional tests for grader controller

Since the query parameter is changed from a concatenation of criterion
ID and TA username to a list of CriterionTaAssociation ID, the tests
need update.
Fix hash key alignment in tests
Merge pull request #1578 from zhangsu/grader_criterion_mapping_performance

Improve performance of mapping graders to criteria