Extract connect_to_manhole helper() function

Testing manhole connection was performed by creating a new connection to
manhole. This works for the current code, but for the next patch, I
need a way to create a connection to manhole, keep it open, and check
that the connection is good after fork.

This patch extract a connect_to_manhole() helper function, which is used
now only by assert_manhole_is_running(). This function is used in the
next patch to keep a connection to manhole during the test.

This also fix few minor issues:

- sock was not closed after connection timeout
- sock.shutdown() and sock.close() were not needed in
  assert_manhole_is_running(), since TestSocket() shutdown and close the
  socket when exiting from the scope
- if connection timed out, there is no need to sleep before raising
Do not patch fork if using socket_path option

The socket_path option is not compatible with automatic manhole
installation after fork. The socket of the parent is removed and
replaced with the socket of the child.  Users of socket_path should use
patch_fork=False. If manhole for child process is needed, it must be
installed manually using a different socket_path.

This patch disables fork patching when both patch_fork and socket_path
are used, and print a warning message. It would be easier to debug if an
exception is raised in such case, but this is how other options
conflicts are handled.