Make TCP::listen a non-template function

We're going to move the callback into an std::function anyway, so it's
better to do this directly. There are no further problems since we have
no other overloads.