## Цель
Устранить утечку OAuth Bearer token при скачивании внешних ZIP/GitHub-ссылок из текста задачи.
## Acceptance criteria
- [ ] Внешние URL скачиваются через отдельную `requests.Session()` без `Authorization`
- [ ] Для Stepik API сохраняется текущая авторизованная сессия
- [ ] Добавлен allowlist доменов для внешних загрузок (`github.com`, `raw.githubusercontent.com`, при необходимости другие явно разрешённые)
- [ ] Локальные/loopback/private-address URL отклоняются
- [ ] Есть тест, подтверждающий отсутствие `Authorization` на внешнем запросе
## Context
Аудит безопасности выявил confirmed High-severity проблему: `make_session()` кладёт Bearer-токен в headers всей `requests.Session`, а `downloader.py` использует ту же сессию для внешних ссылок из HTML задачи.
## Links
- Source finding: F-01
- Part of #146
- Part of #97