msgr: only SO_REUSEADDR when specific port is specified
In general SO_REUSEADDR is slightly dangerous, but avoids waiting for the
timeout when restarting servers. This is important when binding to a
specific port.
When binding to a random port, it doesn't matter. Also, it appears that
two processes can bind() to the same port with that flag set, and then one
will fail with EADDRINUSE on listen(). That's racy when starting up
daemons that should be binding to unique/random ports.