Assigning random available port in IO/HTTP unit tests

Unit tests fail if port specified in their implementation is taken. The solution is to use 0 as port value when creating socket - it will assign first available port in high range. 

Added ListenTask::port() method to retrieve actual port and exposed port number in NioSelectorScheduler::listen(). Changed unit tests to use randomly allocated port.