veyron/services/mounttable: Fixing a bug where a child mounttable
(using the -name flag) registering under a root mounttable would re-mount
to itself rather than the actual root after TTL expired
the first time.

The problem:
mounttable daemon was setting itself as the NamespaceRoot after serving
this meant when publisher mounts correctly to NAMESCPACE_ROOT the first time but when TTL expires and publisher and tries to mount again, it would
instead mount itself to itself instead of NAMESCPACE_ROOT.

The fix:
mounttable daemon was setting itself as the NamespaceRoot for the purpose
mounting the neighborhood server on itself rather than the NAMESCPACE_ROOT.
The fix accomplishes that by serving the "nh" suffix at the rooted
/thisMTAddress//nh therefore eliminating the need to change the namespace
root.

Change-Id: I38ed9246664d4603b2acdf8696c63a409c8a5910
diff --git a/services/mounttable/mounttabled/mounttable.go b/services/mounttable/mounttabled/mounttable.go
index 7d58cd5..e8a80fe 100644
--- a/services/mounttable/mounttabled/mounttable.go
+++ b/services/mounttable/mounttabled/mounttable.go
@@ -79,8 +79,6 @@
 		vlog.Errorf("Serve(%v) failed: %v", name, err)
 		return
 	}
-	mtAddr := naming.JoinAddressName(mtEndpoint.String(), "")
-	r.Namespace().SetRoots(mtAddr)
 
 	vlog.Infof("Mount table service at: %q endpoint: %s",
 		name,
@@ -102,12 +100,15 @@
 			vlog.Errorf("nhServer.Listen failed: %v", err)
 			return
 		}
-		nh, err := mounttable.NewNeighborhoodServer(*nhName, mtAddr)
+
+		myObjectName := naming.JoinAddressName(mtEndpoint.String(), "")
+
+		nh, err := mounttable.NewNeighborhoodServer(*nhName, myObjectName)
 		if err != nil {
 			vlog.Errorf("NewNeighborhoodServer failed: %v", err)
 			return
 		}
-		if err := nhServer.Serve("nh", nh); err != nil {
+		if err := nhServer.Serve(naming.JoinAddressName(myObjectName, "//nh"), nh); err != nil {
 			vlog.Errorf("nhServer.Serve failed to register neighborhood: %v", err)
 			return
 		}