feat: add --json flag to 11 agent-facing commands
Add structured JSON output to init, follow, unfollow, following, ship,
remix, vet, vouch, doctor, learn, and scan. When --json is passed:
- Success: stdout is { ok: true, ...data }
- Error: stdout is { ok: false, error, hint } with exitCode 1
- No human-readable text on stdout
- Verbose messages redirect to stderr
Shared helper in src/lib/json-output.js provides jsonOk() and
jsonError() for consistent envelope formatting. Existing behavior
without --json is unchanged. skim --json is untouched.
Includes 26 new tests covering JSON error paths for all commands.