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 that would break the `{tuple(...) : ...}` line: the problem is, that json does not distinguish between tuples and lists, but only tuples can be used as keys for `dict`.

However, we could probably remove that whole `tuple`-conversion and simply use dumps as keys (in the earlier version you would have had to write `expectations[json.dumps((1, subtask_name))]`, which was the reason I converted back to tuples, but this is no longer neccessary due to `unique_name`). In that case, we could use `case.codename` as `unique_name`, as long as one cannot set `case.codename` on ones own (you could set it to the json-dump of another no-longer-`unique_name`).