Fixes socket leak in HTTP server.

HTTP server sockets were closed in a way that cSocketThreads didn't handle properly - the socket was never removed from the slots.

This PR is changing the way `cSocketThreads::RemoveClient()` handles clients it cannot find - it is a normal situation in some cases. And sockets that are closed from the remote end are removed properly from the slots.

The callbacks' `SocketClosed()` method has been changed, it is now called after the socket is removed from the slots, there's no need for the callback to remove the socket again (but is not an error to attempt to do so).

Fixes #1643.