Make ICL fully self-contained with embedded slynk and assets

Embed slynk sources and browser assets directly into the binary,
eliminating external file dependencies.

Closes #8

Embedded Slynk:
- Load slynk.zip at compile time into *embedded-slynk-zip*
- Extract to versioned ~/.local/share/icl/slynk-VERSION/ on first run
- Version derived from ocicl package name (e.g., 20251214-b01993c)
- Automatic upgrade: new ICL versions extract new slynk versions

Embedded Browser Assets:
- Load JS/CSS files at compile time into *embedded-assets* hash table
- Serve directly from memory via serve-asset
- Includes: dockview, xterm.js, xterm-addon-fit

Build Changes:
- Makefile creates slynk.zip using Lisp zip library (pure Lisp)
- New src/embedded-slynk.lisp and src/embedded-assets.lisp
- Added data-directory function for XDG_DATA_HOME

Installer Cleanup:
- RPM/Debian: removed sly and assets installation (now embedded)
- All installers: added WEB-LICENSES for JS/CSS license compliance
- Kept bundled ASDF for CLISP support

Code Cleanup:
- Removed /usr/share/icl lookups for sly and assets
- Removed Quicklisp fallback from generate-slynk-init
- Windows compatibility: path normalization for zip extraction

The binary is now truly portable - copy it anywhere and it works.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Anthony Green2025-12-21 06:51:44 -0500 87b6c5e1b671860427d7217d42caabc44151825c
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>