[VOL-1429]  This commit adds a flag to bypass the transaction processing
in single core instance.  It also removes the hardcoded KV store
path prefix and put it as part of the config. Adding the ability for
a calling function to change the transaction timeout.

Change-Id: I8570b44b34db99b46410dafd58c6c5b86ea97b41
diff --git a/rw_core/core/core.go b/rw_core/core/core.go
index 484ff35..c13face 100644
--- a/rw_core/core/core.go
+++ b/rw_core/core/core.go
@@ -66,7 +66,7 @@
 		Host:       cf.KVStoreHost,
 		Port:       cf.KVStorePort,
 		Timeout:    cf.KVStoreTimeout,
-		PathPrefix: "service/voltha"}
+		PathPrefix: cf.KVStoreDataPrefix}
 	core.clusterDataRoot = model.NewRoot(&voltha.Voltha{}, &backend)
 	core.localDataRoot = model.NewRoot(&voltha.CoreInstance{}, &backend)
 	core.clusterDataProxy = core.clusterDataRoot.CreateProxy("/", false)
@@ -76,11 +76,15 @@
 
 func (core *Core) Start(ctx context.Context) {
 	log.Info("starting-adaptercore", log.Fields{"coreId": core.instanceId})
-	core.startKafkaMessagingProxy(ctx)
+	if err := core.startKafkaMessagingProxy(ctx); err != nil {
+		log.Fatal("Failure-starting-kafkaMessagingProxy")
+	}
 	log.Info("values", log.Fields{"kmp": core.kmp})
 	core.deviceMgr = newDeviceManager(core.kmp, core.clusterDataProxy, core.instanceId)
 	core.logicalDeviceMgr = newLogicalDeviceManager(core.deviceMgr, core.kmp, core.clusterDataProxy)
-	core.registerAdapterRequestHandler(ctx, core.instanceId, core.deviceMgr, core.logicalDeviceMgr, core.clusterDataProxy, core.localDataProxy)
+	if err := core.registerAdapterRequestHandler(ctx, core.instanceId, core.deviceMgr, core.logicalDeviceMgr, core.clusterDataProxy, core.localDataProxy); err != nil {
+		log.Fatal("Failure-registering-adapterRequestHandler")
+	}
 	go core.startDeviceManager(ctx)
 	go core.startLogicalDeviceManager(ctx)
 	go core.startGRPCService(ctx)
@@ -106,7 +110,7 @@
 	core.grpcServer = grpcserver.NewGrpcServer(core.config.GrpcHost, core.config.GrpcPort, nil, false)
 	log.Info("grpc-server-created")
 
-	core.grpcNBIAPIHandler = NewAPIHandler(core.deviceMgr, core.logicalDeviceMgr)
+	core.grpcNBIAPIHandler = NewAPIHandler(core.deviceMgr, core.logicalDeviceMgr, core.config.InCompetingMode)
 	core.logicalDeviceMgr.setGrpcNbiHandler(core.grpcNBIAPIHandler)
 	//	Create a function to register the core GRPC service with the GRPC server
 	f := func(gs *grpc.Server) {