[+] archive versions table, parse_archive_listing, sync_reference
1. add archive_versions table to cache_db (schema v2) with name,
version, archive_date, filename, status (pending/synced);
2. add archive_version_status_t StrEnum, archive_version_row_t model;
3. add cache_db methods: upsert/mark_synced/list/find/bulk_upsert
archive versions, has_package_version;
4. add archive_entry_t dataclass and parse_archive_listing() on
pacman_manager_t for parsing nginx autoindex HTML;
5. add sync_reference() on manager: fetches archive listing pages for
missing pinned versions, stores entries, syncs needed dates;
6. add sync_reference to abstract manager_t interface;
7. add --reference to archive sync CLI;
8. add test_archive_versions.py with HTML parsing, DB, and
sync_reference tests;