device: add Device.ListenPort and Device.SetListenPort
This is a sample commit for a possible way to make
a Go API that lives alongside UAPI.
The general idea is to add Device and Peer methods
corresponding to UAPI directives, including a way to
look up a peer from a device based on a public key,
as in UAPI.
The UAPI code then deals with parsing and generating textual
input/output, and calls the Go methods to do the work.
This commit also contains a bug fix for a racy access of device.net.port
I will send an independently commit that fixes those directly in UAPI.
This commit is NOT meant to be merged as-is.