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/docker/Dockerfile.arouterd b/docker/Dockerfile.arouterd
index ad95713..1755af1 100644
--- a/docker/Dockerfile.arouterd
+++ b/docker/Dockerfile.arouterd
@@ -26,6 +26,7 @@
 
 # Compile protobuf files
 # Repeate here even if done in base file
+RUN go get google.golang.org/genproto/googleapis/api/annotations
 RUN sh /src/protos/build_protos.sh /src/protos
 
 # Build rw_core