Invisible courses

CAUTION: schemamigration to course application (fairly simple)
MAKE BACKUP OF YOUR DATABASE
Make sure the migrations of the target branch are the same as this branch, then
$ manage.py migrate course

- CourseInstance has new field: invisible_to_students = BooleanField
- The idea is that if invisible_to_students == True, normal and anonymous users can not access/view that CourseInstance.
- Users who are not restricted by invisible_to_students == True: Django superuser, Django staff, course staff (assistants and teachers)
- There are some new helper functions and methods (check the code)

- Only tested locally in obvious cases