bottler, homebrew: split ocaml-homebrew into generic lib + bottler CLI
- ocaml-homebrew becomes a generic library (Platform, Bottle, Formula, Tap)
free of YAML config, S3, Scaleway, or monorepo assumptions. Consumable by
opam, dune-pkg, or any tool that wants Homebrew formula primitives.
- New bottler package contains the CLI, YAML config loading, build
orchestration, rclone upload, release pipeline, and GitHub Actions
workflow generator. Depends on homebrew for formula/tap primitives.
- Config: rename binaries -> packages, add build.linux: static | linuxbrew,
reshape S3 layout from flat to {package}/{platform}/{file}.
- Workflow: branches on build.linux. Static uses ocaml/opam:alpine-3.20
with -cclib -static; linuxbrew uses ghcr.io/homebrew/ubuntu22.04 with
brew-installed libs. Adds opam cache step.
- Tests cover platform roundtrip, bottle parsing, formula emission, tap
name derivation, config loading, build mode dispatch, workflow shape.