Add project promotion, export, and upstream remote support
Promotion:
- Add `unpac project promote <name> --backend <opam|git>` command
- Filters vendor/ directory from project history
- Creates upstream/vendor/patches branches for the backend
Export (inverse of vendoring):
- Add `unpac export <name> --backend <backend>` command
- Moves files from vendor/<backend>/<name>/ back to root
- Add `unpac export-set-remote` and `unpac export-push` commands
- Add `unpac export-list` to show exported packages
Upstream remote for promoted packages:
- Add `unpac opam set-upstream <name> <url>` command
- Allows `unpac opam update` to work on promoted local packages
- Symmetric flow: export-push to publish, set-upstream + update to fetch
Branch model:
- upstream/ - pristine external state (files at root)
- vendor/ - upstream with vendor/<backend>/<name>/ prefix
- patches/ - vendor + local modifications
- export/ - patches transformed back to root (for pushing)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>