Define and wire in bulk flow update adapter API

This adds support for defining bulk or incremental
flow update capability on a per device type basis
and implements the callout mechanism.

It also defines 5 new API entries for proxying
messages from a child-device adapter (e.g. ONU adapter)
to the actual device as well as the APIs for registering
and receiving async messages from a device via a
parent device acting as a proxy. The implementation
of this is left for the next PR.

Change-Id: Ic48a458c170083842b6bc674d675b5b60c0827f6
diff --git a/voltha/protos/device.proto b/voltha/protos/device.proto
index 476cbc2..0a1e9b2 100644
--- a/voltha/protos/device.proto
+++ b/voltha/protos/device.proto
@@ -16,8 +16,10 @@
     // Name of the adapter that handles device type
     string adapter = 2;
 
-    // TODO
-    // ...
+    // Capabilitities
+
+    bool accepts_bulk_flow_update = 3;
+    bool accepts_add_remove_flow_updates = 4;
 
 }
 
@@ -92,7 +94,7 @@
     // Device contact on vlan (if 0, no vlan)
     uint32 vlan = 12;
 
-    message ProxyDevice {
+    message ProxyAddress {
         string device_id = 1;  // Which device to use as proxy to this device
         uint32 channel_id = 2;  // Sub-address within proxy device
     };
@@ -108,7 +110,7 @@
         // ("xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx")
         string ipv6_address = 15;
 
-        ProxyDevice proxy_device = 19;
+        ProxyAddress proxy_device = 19;
     };
 
     AdminState.AdminState admin_state = 16;