Underlying, non-visible changes
-Changed implementation of mark calculations. Instead of calculating mark from scratch (i.e. start off with each evaluation each time we want to display the mark), now the mark of each category is saved in the database so we can accessed it directly. It is dynamically updated when new evals are added or existing ones are changed. Theoretically this should improve efficiency. We can extend this to courses, terms too, but note that they already gain from the advantage of having the category average saved so in the recursive mark calculation process they can stop at categories and not go down to start from evals.