Add a `WorkerState` type.
Extract ID-related functions into an `id` package.
Use the `id` package in `simplepush`.

This change requires clients to provide valid (32-byte unhyphenated or
36-byte hyphenated) UUIDs when specifying a device or channel ID. This
is backward-compatible with existing clients.
Update the tests.
`PacketType.String()`: Indicate unknown types.