Implements issue #51. Adds a Fuzzwork SDE downloader/importer and expands the offline lookup layer beyond item types. - sde.py: SDE_URL constant (FAMILIAR_SDE_URL override) and async download_sde() that streams + bz2-decompresses the dump incrementally to sde_path(), resetting the cached connection. - sde.py: system_by_id/system_by_name/station_by_id offline lookups, all degrading to None when the table/file is missing. - universe.py: get_system/get_station prefer the SDE when available, falling back to ESI otherwise (signatures unchanged). - __main__.py: `familiar sde download|status|path` subcommands. - tests: download_sde via injected MockTransport, new lookups + None fallbacks, and SDE-vs-ESI fast-path/fallback for get_system/station. - README: short offline-SDE setup note. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>