find a free port reliably