Various changes in BMv2 driver and provider modules (onos1.6 cherry-pick)

Driver notable changes:
- Implemented new behaviors, removed deprecated ones
- Removed flow rule translator classes (now under protocol module)
- Improved FlowRuleProgrammable: now it uses BMv2TableEntryService
	to lookup/bind flow rules with BMv2 table entries, retrieves flow
	statistics, better exception handling when adding/replacing/removing
	table entries.
- Improved PacketProgrammable: better exception handling and logging

Provider notable changes:
- Bmv2DeviceProvider: detects and notifies device configuration
	changes and reboots to Bmv2DeviceContextService, added support for
	periodic polling of port statistics
- Bmv2PacketProvider: implemented workaround for OutboundPackets with
	flood treatment

Change-Id: I79b756b533d4afb6b70025a137b2e811fd42a4e8
diff --git a/providers/bmv2/app/features.xml b/providers/bmv2/app/features.xml
index f13d07c..2c5b9a1 100644
--- a/providers/bmv2/app/features.xml
+++ b/providers/bmv2/app/features.xml
@@ -22,7 +22,9 @@
         <bundle>mvn:${project.groupId}/onos-bmv2-provider-device/${project.version}</bundle>
         <bundle>mvn:${project.groupId}/onos-bmv2-provider-packet/${project.version}</bundle>
         <bundle>mvn:org.apache.thrift/libthrift/0.9.3</bundle>
-        <bundle>mvn:${project.groupId}/onos-bmv2-protocol/${project.version}</bundle>
+        <bundle>mvn:${project.groupId}/onos-bmv2-protocol-api/${project.version}</bundle>
+        <bundle>mvn:${project.groupId}/onos-bmv2-protocol-ctl/${project.version}</bundle>
+        <bundle>mvn:${project.groupId}/onos-bmv2-protocol-thrift-api/${project.version}</bundle>
     </feature>
 </features>