dgram (udp) catchup with runtime/pull/595

Should be ready, but does require coordinated release with <del>https://github.com/tessel/runtime/pull/595</del><ins>https://github.com/tessel/runtime/pull/622</ins>.
Again up to discretion, but I'd rather separate `size_t buf_max` and `size_t* buf_len` output variables. In C# parlance, labeling these `in` and `out` would make it look a little scary.