syncbase: implement various mojo stubs

as part of this, adds all the glue needed to synthesize
ctx and call, etc.

Change-Id: I273e3bdcdfa9a0bd59379e4889631616777d321a
diff --git a/services/syncbase/syncbased/main.go b/services/syncbase/syncbased/main.go
index 7fc1e6d..8def540 100644
--- a/services/syncbase/syncbased/main.go
+++ b/services/syncbase/syncbased/main.go
@@ -10,6 +10,7 @@
 	"v.io/syncbase/x/ref/services/syncbase/server"
 	"v.io/v23"
 	"v.io/v23/context"
+	"v.io/v23/rpc"
 	"v.io/v23/security"
 	"v.io/v23/security/access"
 	"v.io/x/lib/vlog"
@@ -35,10 +36,9 @@
 	return perms
 }
 
-// TODO(sadovsky): We return interface{} as a quick hack to support Mojo. The
-// actual return value is of type *server.service, which we don't want to
-// export.
-func Serve(ctx *context.T) interface{} {
+// TODO(sadovsky): We return rpc.Server and rpc.Dispatcher as a quick hack to
+// support Mojo.
+func Serve(ctx *context.T) (rpc.Server, rpc.Dispatcher) {
 	s, err := v23.NewServer(ctx)
 	if err != nil {
 		vlog.Fatal("v23.NewServer() failed: ", err)
@@ -77,5 +77,5 @@
 		vlog.Info("Mounted at: ", *name)
 	}
 
-	return service
+	return s, d
 }