c-api: add program status report and clear functions
The C API exposes the OSC 7501 capability but gives C programs no way to send Program Status Protocol reports, so they would have to format and validate the sequences themselves. Add vaxis_runtime_report_program_status(), which takes a vaxis_program_status describing the state, kind, id, app, title, msg and progress, and vaxis_runtime_clear_program_status(), which takes an optional id. A string with a NULL ptr is absent, while a non-NULL empty string is passed through, so an empty id or app is rejected as in Zig. Unknown states or kinds and invalid ids or apps return VAXIS_ERR_INVALID without writing anything; write failures return VAXIS_ERR_IO. Check the new struct layout and enum values against vaxis.h, cover the argument handling in Zig tests, and verify from the C examples that reports written through a runtime reach a pseudo-terminal intact. Co-authored-by: Tim Culverhouse <tim@timculverhouse.com>