Bug fix: double file desciptor after fork.

Was forking after a successful connection, which meant had a
duplicated open socket in both parent and child, so even when it
closed in the child it remained open in the parent and was never
closed. Now fork immediately after making sure there isn't an error on
the listener socket. This engendered making more variables block local
to the child thread, including the remote_ip variable, which we now
print out with the log messages to get a better idea about which
actual client ip is the subject of the messages.
Update logging to use process ids instead of __func__.

This is better in a multiprocess environment both for readability and
catching process-related weirdness, which I am now seeing.