namespace-browser: Implement vtrace (part 1 of many)

In this CL I add a basic implementation of vtrace spans and the vtrace
store.  Also add enough functionality to collect trace data when
javascript is acting as a client.

There are many shortcomings which will be addressed by future CLs.
- The store always collects, there is no pattern based collection as in go.
- JS servers never return trace information
- There is no interface to dump traces from the console / etc.

MultiPart: 4/4
Change-Id: I50c5bd7c6c2c348c3e94bd739757c1edb44b62f3
diff --git a/src/services/namespace/service.js b/src/services/namespace/service.js
index 6b36bcb..4561741 100644
--- a/src/services/namespace/service.js
+++ b/src/services/namespace/service.js
@@ -286,14 +286,14 @@
   // Adapt the method name to be lowercase again.
   methodName = vom.MiscUtil.uncapitalize(methodName);
 
+  var ctx;
   return getRuntime().then(function bindToName(rt) {
-    var ctx = veyron.context.Context().withTimeout(RPC_TIMEOUT);
+    ctx = rt.getContext();
     var client = rt.newClient();
     return client.bindTo(ctx, name);
   }).then(function callMethod(service) {
     log.debug('Calling', methodName, 'on', name, 'with', args);
-    var ctx = veyron.context.Context().withTimeout(RPC_TIMEOUT);
-    args.unshift(ctx);
+    args.unshift(ctx.withTimeout(RPC_TIMEOUT));
     return service[methodName].apply(null, args);
   }).then(function returnResult(result) {
     // If the result was for 0 outArg, then this returns undefined.
@@ -449,4 +449,4 @@
     typeName: 'Service',
     description: null
   });
-}
\ No newline at end of file
+}