base: Let get_media_files raise NotImplemented error in default implementation
problems: Let UserSolution properly re-implement get_media_files
roots: Leverage django-sendfile
downloads: Add the downloads app for protected downloads
downloads: Add AccessFilePermissionMixin for models with protected files
problems: Protect solution in UserSolution by using protected downloads
downloads: Add download_protected_file view
downloads: Rewire media/protected/ urls through protected download