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.
Merge pull request #56 from jeffallen/bench

A benchmark to check for high-frequency alloc