PUSH decoding
PUSH0 has declared width zero and value zero. PUSH1 through PUSH32 report their declared width even when fewer immediate bytes remain; `instruction_size` reports bytes actually present.
- `push_value` right-aligns available immediate bytes and zero-pads to BYTES32.
- `push_truncated` marks a missing immediate suffix.
- PUSH-only fields are NULL on other instructions.