Allow NewClient to run concurrently (#103)

diff --git a/whisk/client.go b/whisk/client.go
index c710efd..6797651 100644
--- a/whisk/client.go
+++ b/whisk/client.go
@@ -27,6 +27,7 @@
 	"github.com/apache/incubator-openwhisk-client-go/wski18n"
 	"io"
 	"io/ioutil"
+	"net"
 	"net/http"
 	"net/url"
 	"reflect"
@@ -214,10 +215,19 @@
 	}
 
 	// Use the defaultTransport as the transport basis to maintain proxy support
-	// Make a copy of the defaultTransport so that the original defaultTransport is left alone
-	defaultTransportCopy := *(http.DefaultTransport.(*http.Transport))
-	defaultTransportCopy.TLSClientConfig = tlsConfig
-	c.client.Transport = &defaultTransportCopy
+	c.client.Transport = &http.Transport{
+		Proxy: http.ProxyFromEnvironment,
+		DialContext: (&net.Dialer{
+			Timeout:   30 * time.Second,
+			KeepAlive: 30 * time.Second,
+			DualStack: true,
+		}).DialContext,
+		MaxIdleConns:          100,
+		IdleConnTimeout:       90 * time.Second,
+		TLSHandshakeTimeout:   10 * time.Second,
+		ExpectContinueTimeout: 1 * time.Second,
+		TLSClientConfig:       tlsConfig,
+	}
 
 	return nil
 }