`parseStructured` decodes `data_base64` into `Uint32Array` instead of `Uint8Array`

Describe the Bug

When deserializing a structured-mode CloudEvent that contains data_base64, the parseStructured function in src/message/http/index.ts decodes the binary data into a Uint32Array instead of a Uint8Array:

eventObj.data = new Uint32Array(Buffer.from(data, "base64"));

This produces an object where each byte value (0–255) occupies a 32-bit element. While Buffer.from(uint32Array) happens to copy values correctly (element-by-element), any consumer that reads the underlying ArrayBuffer directly (such as protobuf libraries) sees 4 bytes per element with null-byte padding, resulting in corrupted data.

Related: #491 explains how Uint32Array ended up as the SDK's internal binary representation. That issue and PR #494 fixed the encoding direction (creating CloudEvents with binary data), but the decoding path in parseStructured was never updated.

Steps to Reproduce

const { HTTP } = require("cloudevents");

const originalBytes = Buffer.from([0x0a, 0x0d, 0x6f, 0x70]);
const envelope = JSON.stringify({
  specversion: "1.0",
  id: "test-123",
  type: "test",
  source: "test",
  data_base64: originalBytes.toString("base64"),
});

const event = HTTP.toEvent({
  headers: { "content-type": "application/cloudevents+json" },
  body: envelope,
});

console.log(event.data.constructor.name);      // "Uint32Array" — should be "Uint8Array"
console.log(event.data.buffer.byteLength);     // 16 (4 elements × 4 bytes) — should be 4

// Reading the underlying ArrayBuffer gives corrupted data:
const raw = Buffer.from(event.data.buffer, event.data.byteOffset, event.data.byteLength);
console.log(raw); // <Buffer 0a 00 00 00 0d 00 00 00 6f 00 00 00 70 00 00 00>

Expected Behavior

event.data should be a Uint8Array so that both value-based access and raw ArrayBuffer access produce the correct bytes.

This would also be consistent with the SDK's own base64AsBinary() in event/validation.ts, which already uses Uint8Array.