Merged requested to merge aj46ezos/emper:fix-repeated-ConcurrentNetworkEchoTest into master
Both test fail when repeated because the listener can not bind to the tcp tuple again. This is fixed by using SO_REUSEPORT instead of SO_REUSEADDR.
TIL: SO_REUSEADDR is about address wildcards and SO_REUSEPORT allows rapid binding to the same tcp tuple. https://stackoverflow.com/questions/14388706/how-do-so-reuseaddr-and-so-reuseport-differ
Add a generic way to specify socket options when creating a listen socket with tcp_listener.