add initial event package

this will be used for emitting events for a build

[#73309626]
deps
emit events while building, rather than raw text

when a build's config is learned, an Initialize event is emitted before
creating its container.

a Start event is emitted, with the current time, when the build's script
about to start.

logs are emitted as log events, and annotated with their source (e.g.
input/output/run) and name (e.g. resource name, stdout/stderr).

[#73309626]
logwriter emits valid utf8

[#73309626]
switch stream check handler to gorilla/websocket

no longer depending on go.net/websocket

[#75766896]
log payload is utf8-encoded string, not []byte
emit status events when reporting build

move emitter construction up to scheduler; makes much more sense there
as its lifecycle lines up better

[#73309626]
emit event protocol version as first message

also stringify the event types

[#73309626]
stringify origin event type

this would be backwards-incompatible but none of this is pushed yet :)

[#73309626]
raw -> archive in resource type defaults