A benchmark to check for high-frequency alloc

To see how many allocations happen per pass through
the control loop: go test -bench=.

We expect that zero allocations happen in the control loop,
but in fact 2 happen due to runtime.convertT2I in os.(*File).Write.
Discussing with Go maintainers how to fix this.

We still need a mock navboard that actually calls os.(*File).Read
to check for the same kind of problem there, but a quick read
of os/file.go and os/file_unix.go now that I understand the problem
makes me think it won't happen on the Read side.

Another critical source of garbage to minimize is from the
websocket, but that's work for another day.