The summary classes in exercise_summary.py had two separate purposes: 1 to summarise the submissions to a course/category/round/exerice by some particular user and 2 to help to construct the html of view_instance.html. These purposes are clearly separate so I didn't want the summary classes to be responsible for both and I thus removed the responsibility related to the html construction.

In this commit, the exercise_summary.py is now pretty much done except that I might come back to edit some docstrings/comments in it.

The html of view_instance.html is now constructed by using the "exercise_tree" which is a datastructure which contains all the exercises (and their summaries) structured under categories and rounds in a way that is convenient for constructing the html of the view_instance.html.  The datastructure is assembled by the corresponding view, view_instance, in course.views. This commit contains a working draft of views.py and view_instance.html but it's still very messy and difficult to understand.