Make the util test platform independent

Generate the version string that "go version" produces ourselves.  We are
using a go command here so we can be sure it's present, and know what it's
output will be.
Added new set of message functions

These try to encapsulate the methods we are using for sending data between
programs.  Not perfectly happy with the API, but still learning the Go
"no-generics" way.  This includes a basic test as well.
Created a helper function to create a TCP based MessageConn

This is going to be used from several places, so lets centralize it.