recreate openvpn listener socket only when error is not `net.ErrClosed`
during the running of the client it might happen that there's an actual error for which we need to restart the UDP listener where openvpn send its traffic, but an error will also be encountered in the copy loop when tearing down the connection, we can filter these types of errors by checking if it is a net.ErrClosed error type and re-create the UDP listener only when the error is not a net.ErrClosed
fixes #64 (closed)