Remove redundant result count

The count is already maintained by the `results` array.
Fix passing mark precision

The passing mark is exactly half of the total mark. The current
calculation is a integer division by 2, which will result an incorrect
passing mark for total marks that are not divisible by 2. Use floating
point division instead.
Exclude inactive students from assignment stats

Inactive students should not be included when calculating the mean and
the median of the students' marks for an assignment.

This also improves the performance of the method, as it no longer
queries for a list of ActiveRecords (without eagerly loading the
associations as the current code does) objects but only a list of
integers.
Remove unmeaningful assertions

The assertions depend on the return value of `(un)?hide_students`, which
is not documented nor meaningful (update always return the found objects).

It is also failing since the last line of the two methods are no longer
a `Student.update(...)`, but instead of fixing the implementation, the
unmeaningful assertions can simply be removed. Exceptions raised in
tests count as test failure.
Rename `set_results_statistics` for readability

The word set isn't accurate because the user cannot set it (the method
accepts no argument).
Add spec for Assignment#update_results_stats
Fix group name uniqueness

Group name must be unique across multiple factory creations. Lorem.word
does not generate unique names apparently, but Internet.user_name does.
Add spec for Result.student_marks_by_assignment
Remove result stat Shoulda tests migrated to RSpec
Merge pull request #1562 from zhangsu/inactive_students_mean_median

Exclude inactive students from assignment stats.