dgram (udp) catchup with runtime/pull/595

Should be ready, but does require coordinated release with https://github.com/tessel/runtime/pull/595.
Promote this somewhere to the top of the file. Unless `typedef` has function scoping?