VOL-514 Broadcom ONU Reconcilliation feature

Patch 2: Updated commit msg VOL number.
patch 3: Small change to trigger jenkins build
patch 4: Addressed review comments

Change-Id: Ifcefe51c1f43a2559c49aa8c1dccfad72983f7ea
(cherry picked from commit 01ca080bff5f58f7d4d154704dd411711cf6455b)
diff --git a/voltha/adapters/broadcom_onu/broadcom_onu.py b/voltha/adapters/broadcom_onu/broadcom_onu.py
index e45b57d..2ac33bf 100644
--- a/voltha/adapters/broadcom_onu/broadcom_onu.py
+++ b/voltha/adapters/broadcom_onu/broadcom_onu.py
@@ -107,7 +107,9 @@
         return device
 
     def reconcile_device(self, device):
-        raise NotImplementedError()
+        log.info('reconcile-device', device_id=device.id)
+        self.devices_handlers[device.id] = BroadcomOnuHandler(self, device.id)
+        reactor.callLater(0, self.devices_handlers[device.id].reconcile, device)
 
     def abandon_device(self, device):
         raise NotImplementedError()
@@ -387,6 +389,24 @@
         device.oper_status = OperStatus.DISCOVERED
         self.adapter_agent.update_device(device)
 
+    def reconcile(self, device):
+
+        log.info('reconciling-broadcom-onu-device-starts')
+
+        # first we verify that we got parent reference and proxy info
+        assert device.parent_id
+        assert device.proxy_address.device_id
+
+        # register for proxied messages right away
+        self.proxy_address = device.proxy_address
+        self.adapter_agent.register_for_proxied_messages(device.proxy_address)
+
+        # TODO: Query ONU current status after reconcile and update.
+        #       To be addressed in future commits.
+
+        log.info('reconciling-broadcom-onu-device-ends')
+
+
     @inlineCallbacks
     def update_flow_table(self, device, flows):
         #