hooks: stop a chained pre-push from swallowing Entire's failure
Commit

When entire enable finds an existing pre-push hook it backs it up to
pre-push.pre-entire and chains to it after Entire's own invocation. The
script's exit status was then the chained hook's, so a failing Entire
pre-push (an OPF refusal, which must abort the push) let the push through
whenever the user's own hook succeeded.
A chained pre-push now exits with Entire's status before the chain call
when Entire fails; the user's hook is skipped since the push is aborting.
The other hooks are unchanged: their Entire invocations end in || true.
Existing installs are upgraded: a pre-push in the exact old chained shape
reads GitHooksOutdated, so EnsureSetup (agent turns) and entire doctor
rewrite it. The match is exact so hand-edited hooks, which are overwritten
without a backup, are left alone. Doctor's out-of-date message no longer
names only the legacy working-tree launcher.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com Entire-Checkpoint: 01M3X0V27WGE2FS6VEWK3XP5AZ