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>.
I think you're right (since overwriting the original *in* value makes it hard to compare against the resulting *out* value) but if I'm going to go through and change all the method signatures *again* I'd honestly rather just go back to returning a `ssize_t` for consistency with the underlying send/recv calls.