decodeFromRadio
Decode a framed protobuf into a FromRadio message.
Caller is responsible for extracting the payload (4-byte header + N bytes of protobuf).
Return
the decoded envelope
Parameters
payload
the raw protobuf bytes (without framing header)
Throws
if deserialization fails