mt5-httpapi v4.12.0 — CI covers the stack, vendored binaries are gated

make verify-binaries: every tracked executable must be declared in
assets/binaries.lock.json with its sha256, upstream and signature state. An
undeclared binary, a changed one, or a degraded signature fails the build, and
it runs first in make test so CI enforces it on every PR.

It immediately documents scripts/defender-remover/PowerRun.exe, which arrived
repacked through the defender-remover toolkit: malformed certificate directory,
hash matching no upstream Sordum release, signature unverifiable. Not known to
be malicious, but no longer silent.

The unit suite goes from 244 to 379. Everything that previously only ran
against a live terminal now runs in CI through the real Flask app against a
scripted SDK. mt5client, monitor and the Go client get their first coverage,
and the healthcheck awk program is tested by executing it rather than grepping
its source. Coverage for mt5api is gated at 62 percent, currently 75.

Fixed: non-finite durations raised OverflowError and surfaced as a 500 instead
of a 400; the backtest timeout was unbounded while holding the terminal's run
lock; prune_old_jobs rmtree'd a path built from a jobId read out of a state
file; check_health.py degraded silently when its per-VM filter import failed.