VOL-1497 : Add more control to kv/memory access

- Added kv locking mechanism (etcd only)
- (watch) control path access whenever possible
- (watch) use a transaction for updates and merge with memory
- cleaned up vendoring
- misc changes to fix exceptions found along the way

Amendments:

- Copyright header got removed in auto-generated file
- Changed default locking to false for KV list operation
- Updated backend api to allow the passing of locking parameter

Change-Id: Ie1a55d3ca8b9d92ae71a85ce42bb22fcf1419e2c
diff --git a/Gopkg.toml b/Gopkg.toml
index bbc8cf0..65255b0 100644
--- a/Gopkg.toml
+++ b/Gopkg.toml
@@ -79,9 +79,9 @@
   name = "github.com/stretchr/testify"
   version = "1.3.0"
 
-[[constraint]]
+[[override]]
   name = "go.etcd.io/etcd"
-  version = "3.3.11"
+  branch = "master"
 
 [[constraint]]
   name = "go.uber.org/zap"