[REEF-1231] Share the Transport between NameLookupClient and NameClient

  * Adding a public constructor of NameLookupClient
  * Removing NameLookupClient injection from NameClient

JIRA:
  [REEF-1231](https://issues.apache.org/jira/browse/REEF-1231)

Pull Request:
  This closes #887
diff --git a/lang/java/reef-io/src/main/java/org/apache/reef/io/network/naming/NameClient.java b/lang/java/reef-io/src/main/java/org/apache/reef/io/network/naming/NameClient.java
index f5985c3..7e1a4eb 100644
--- a/lang/java/reef-io/src/main/java/org/apache/reef/io/network/naming/NameClient.java
+++ b/lang/java/reef-io/src/main/java/org/apache/reef/io/network/naming/NameClient.java
@@ -74,8 +74,7 @@
       @Parameter(NameResolverRetryCount.class) final int retryCount,
       @Parameter(NameResolverRetryTimeout.class) final int retryTimeout,
       final LocalAddressProvider localAddressProvider,
-      final TransportFactory tpFactory,
-      final NameLookupClient lookupClient) {
+      final TransportFactory tpFactory) {
 
     final BlockingQueue<NamingLookupResponse> replyLookupQueue = new LinkedBlockingQueue<>();
     final BlockingQueue<NamingRegisterResponse> replyRegisterQueue = new LinkedBlockingQueue<>();
@@ -86,7 +85,8 @@
             new NamingResponseHandler(replyLookupQueue, replyRegisterQueue), codec)),
         null, retryCount, retryTimeout);
 
-    this.lookupClient = lookupClient;
+    this.lookupClient = new NameLookupClient(serverAddr, serverPort, timeout, factory,
+        retryCount, retryTimeout, replyLookupQueue, this.transport);
 
     this.registryClient = new NameRegistryClient(serverAddr, serverPort, timeout,
         factory, replyRegisterQueue, this.transport);
diff --git a/lang/java/reef-io/src/main/java/org/apache/reef/io/network/naming/NameLookupClient.java b/lang/java/reef-io/src/main/java/org/apache/reef/io/network/naming/NameLookupClient.java
index efc61a6..327b9d6 100644
--- a/lang/java/reef-io/src/main/java/org/apache/reef/io/network/naming/NameLookupClient.java
+++ b/lang/java/reef-io/src/main/java/org/apache/reef/io/network/naming/NameLookupClient.java
@@ -72,6 +72,37 @@
   private final int retryCount;
   private final int retryTimeout;
 
+
+  /**
+   * Constructs a naming lookup client.
+   *
+   * @param serverAddr a server address
+   * @param serverPort a server port number
+   * @param timeout    request timeout in ms
+   * @param factory    an identifier factory
+   * @param retryCount a count of retrying lookup
+   * @param retryTimeout retry timeout
+   * @param replyQueue a reply queue
+   * @param transport  a transport
+   */
+  NameLookupClient(final String serverAddr,
+                          final int serverPort,
+                          final long timeout,
+                          final IdentifierFactory factory,
+                          final int retryCount,
+                          final int retryTimeout,
+                          final BlockingQueue<NamingLookupResponse> replyQueue,
+                          final Transport transport) {
+    this.serverSocketAddr = new InetSocketAddress(serverAddr, serverPort);
+    this.timeout = timeout;
+    this.cache = new NameCache(timeout);
+    this.codec = NamingCodecFactory.createFullCodec(factory);
+    this.replyQueue = replyQueue;
+    this.retryCount = retryCount;
+    this.retryTimeout = retryTimeout;
+    this.transport = transport;
+  }
+
   /**
     * Constructs a naming lookup client.
     *
@@ -91,7 +122,6 @@
             @Parameter(NameResolverRetryTimeout.class) final int retryTimeout,
             final LocalAddressProvider localAddressProvider,
             final TransportFactory tpFactory) {
-
     this.serverSocketAddr = new InetSocketAddress(serverAddr, serverPort);
     this.timeout = timeout;
     this.cache = new NameCache(timeout);
diff --git a/lang/java/reef-io/src/main/java/org/apache/reef/io/network/naming/NameRegistryClient.java b/lang/java/reef-io/src/main/java/org/apache/reef/io/network/naming/NameRegistryClient.java
index a3de2b6..e354efe 100644
--- a/lang/java/reef-io/src/main/java/org/apache/reef/io/network/naming/NameRegistryClient.java
+++ b/lang/java/reef-io/src/main/java/org/apache/reef/io/network/naming/NameRegistryClient.java
@@ -70,7 +70,7 @@
    * @param serverPort a name server port
    * @param factory    an identifier factory
    */
-  public NameRegistryClient(
+  NameRegistryClient(
       final String serverAddr, final int serverPort, final IdentifierFactory factory,
       final LocalAddressProvider localAddressProvider) {
     this(serverAddr, serverPort, 10000, factory, localAddressProvider);
@@ -84,7 +84,7 @@
    * @param timeout    timeout in ms
    * @param factory    an identifier factory
    */
-  public NameRegistryClient(final String serverAddr,
+  NameRegistryClient(final String serverAddr,
                             final int serverPort,
                             final long timeout,
                             final IdentifierFactory factory,
@@ -107,7 +107,7 @@
     }
   }
 
-  public NameRegistryClient(final String serverAddr, final int serverPort,
+  NameRegistryClient(final String serverAddr, final int serverPort,
                             final long timeout, final IdentifierFactory factory,
                             final BlockingQueue<NamingRegisterResponse> replyQueue,
                             final Transport transport) {