essessey v0.5.0 — SSE wire format as specified, plus event IDs

The codec could not round-trip its own output: a payload containing a newline
came back truncated at the first one, silently.

Payloads are now framed as one data: field per line, which is how the format
represents a multi-line value. Previously a blank line inside a payload forged a
second event, and a newline in an event type let one Emit write several
caller-chosen events.

The parser now runs the format's state machine instead of matching the literal
prefix 'data: '. The space after a colon is optional, so conformant producers
that omit it used to yield nothing at all; multiple data: fields used to lose
everything after the first; and typeless events were dropped as malformed.

Adds Event.ID (emitted and parsed, omitempty because an empty id: RESETS the
receiver's resume point), Source.LastEventID/Retry, FrameRetry and FrameComment.

BREAKING: framing bytes change for multi-line payloads and for events carrying
an ID, and Source delivers events the old parser silently discarded.