Move util files to internal so they are not exported. (#93)

diff --git a/pulsar/impl_partition_producer.go b/pulsar/impl_partition_producer.go
index 56fbb6c..dd420a4 100644
--- a/pulsar/impl_partition_producer.go
+++ b/pulsar/impl_partition_producer.go
@@ -29,7 +29,6 @@
 
 	"github.com/apache/pulsar-client-go/pkg/pb"
 	"github.com/apache/pulsar-client-go/pulsar/internal"
-	"github.com/apache/pulsar-client-go/util"
 )
 
 type producerState int
@@ -58,8 +57,8 @@
 	// Channel where app is posting messages to be published
 	eventsChan chan interface{}
 
-	publishSemaphore util.Semaphore
-	pendingQueue     util.BlockingQueue
+	publishSemaphore internal.Semaphore
+	pendingQueue     internal.BlockingQueue
 	lastSequenceID   int64
 
 	partitionIdx int
@@ -92,8 +91,8 @@
 		producerID:       client.rpcClient.NewProducerID(),
 		eventsChan:       make(chan interface{}, 1),
 		batchFlushTicker: time.NewTicker(batchingMaxPublishDelay),
-		publishSemaphore: make(util.Semaphore, maxPendingMessages),
-		pendingQueue:     util.NewBlockingQueue(maxPendingMessages),
+		publishSemaphore: make(internal.Semaphore, maxPendingMessages),
+		pendingQueue:     internal.NewBlockingQueue(maxPendingMessages),
 		lastSequenceID:   -1,
 		partitionIdx:     partitionIdx,
 	}
diff --git a/util/blocking_queue.go b/pulsar/internal/blocking_queue.go
similarity index 99%
rename from util/blocking_queue.go
rename to pulsar/internal/blocking_queue.go
index 224baac..37317a1 100644
--- a/util/blocking_queue.go
+++ b/pulsar/internal/blocking_queue.go
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-package util
+package internal
 
 import (
 	"sync"
diff --git a/util/blocking_queue_test.go b/pulsar/internal/blocking_queue_test.go
similarity index 98%
rename from util/blocking_queue_test.go
rename to pulsar/internal/blocking_queue_test.go
index f6cbaa0..bf21da5 100644
--- a/util/blocking_queue_test.go
+++ b/pulsar/internal/blocking_queue_test.go
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-package util
+package internal
 
 import (
 	"fmt"
diff --git a/util/semaphore.go b/pulsar/internal/semaphore.go
similarity index 98%
rename from util/semaphore.go
rename to pulsar/internal/semaphore.go
index 74e4d16..e08995c 100644
--- a/util/semaphore.go
+++ b/pulsar/internal/semaphore.go
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-package util
+package internal
 
 // Semaphore is a channel of bool, used to receive a bool type semaphore.
 type Semaphore chan bool
diff --git a/pulsar/producer_test.go b/pulsar/producer_test.go
index ae3df35..052e92a 100644
--- a/pulsar/producer_test.go
+++ b/pulsar/producer_test.go
@@ -20,12 +20,12 @@
 import (
 	"context"
 	"fmt"
+	"github.com/apache/pulsar-client-go/pulsar/internal"
 	"net/http"
 	"sync"
 	"testing"
 	"time"
 
-	"github.com/apache/pulsar-client-go/util"
 	"github.com/stretchr/testify/assert"
 
 	log "github.com/sirupsen/logrus"
@@ -124,7 +124,7 @@
 
 	wg := sync.WaitGroup{}
 	wg.Add(10)
-	errors := util.NewBlockingQueue(10)
+	errors := internal.NewBlockingQueue(10)
 
 	for i := 0; i < 10; i++ {
 		producer.SendAsync(context.Background(), &ProducerMessage{
@@ -306,7 +306,7 @@
 
 	wg := sync.WaitGroup{}
 	wg.Add(5)
-	errors := util.NewBlockingQueue(10)
+	errors := internal.NewBlockingQueue(10)
 	for i := 0; i < numOfMessages/2; i++ {
 		messageContent := prefix + fmt.Sprintf("%d", i)
 		producer.SendAsync(ctx, &ProducerMessage{
@@ -404,7 +404,7 @@
 	prefix := "msg-batch-async-"
 	wg := sync.WaitGroup{}
 	wg.Add(5)
-	errors := util.NewBlockingQueue(5)
+	errors := internal.NewBlockingQueue(5)
 	for i := 0; i < numOfMessages/2; i++ {
 		messageContent := prefix + fmt.Sprintf("%d", i)
 		producer.SendAsync(ctx, &ProducerMessage{