Fix flaky CSV test

The test compares the raw CSV string directly, but the actual order of
the objects returned from the database is unspecified and sometimes gives
a test failure:

MarksGradersControllerTest#test_: An authenticated admin should download
a csv on GET :
download_grader_students_mapping.
[/home/su/code/Markus/test/functional/marks_graders_
controller_test.rb:114]:
<"machinist_student1,machinist_ta1,machinist_ta2\nmachinist_student2\nmachinist_student
3\nmachinist_student4\nmachinist_student5\n"> expected but was
<"machinist_student3\nmachinist_student1,machinist_ta1,machinist_ta2\nmachinist_student
2\nmachinist_student4\nmachinist_student5\n">.

This can be fixed by comparing the set of rows.
Merge pull request #1566 from zhangsu/fix_csv_flakyness

Fix: flaky CSV test.

The test compares the raw CSV string directly, but the actual order of
the objects returned from the database is unspecified and sometimes gives
a test failure
Remove unnecessary line break

The line breaks were introduced due to the parameter names being too
long, but after some refactoring the line breaks are not needed anymore.
Refactor method signatures for reusability

The current use cases for the count update methods can live with the
current signature, but after assigning graders to criteria, the same
update needs to be performed with a modified signature.
Specify Criterion.update_assigned_groups_counts

And remove the old Test::Unit + Shoulda tests.
Specify Grouping.update_criteria_coverage_counts

The old tests in Test::Unit and Should are migrated to RSpec therefore
can be removed.
Fix mocha stubs for count update methods

The signature of the methods changed, so the stubbing calls need update
as well.
Migrate TA assignment tests to RSpec