Feedback and Unit Tests

* Feedback: table columns shown on "submissions" page depend on feedback
* Unit Tests:
    * changed semantics
    * implemented server-sided unit tests
    * seperate unit tests from normal submissions
    * special "details" page
At the moment a compile error for a unit test is presented as "oops"; this is the same output as if something would have gone wrong in `compute_unit_test_score`. I really recommend that the output for compile errors differs from the usual failed unit test, since the former is due to your program and the latter is usually due to your (too weak) testcases.