fix a lot of crashes when submitting an invalid user form. fixes #403, fixes #351
Merge pull request #425 from karyon/fix_user_form

fix the user form.
remove unused code
fix a method's return type
rename a variable
give the ReviewTextAnswerForm a model so it's better testable
specify a catched exception more precisely
fix semesters being always deletable. add a comment regarding an unused method
add a comment to explain why we overwrite a django internal method
redirect to semester page, not to root, after visiting /delete on a nondeletable semester
lottery: only include courses that users had a chance to evaluate
add a test that visits all urls
add tests for the forms on the login page
add tests that visit each form and submit it without entering data
add tests for a few forms
add a test for the contributor form set
remove semester deletion tests and add a new one
add test_semester_publish
test semester state change pages. test some urls that the user reaches only by url-hacking.
test course create view. small refactoring.