Primary public constructor: takes ownership of payload so the whole array is the logical payload. Normal construction path for senders and for any code that already has a correctly-sized ByteArray.
The caller must not mutate payload after construction.