Merge pull request #1 from Juniper/master

Sync from parent contrail-controller.
Merge pull request #2 from Juniper/master

Sync from Juniper:master.
Merge pull request #3 from Juniper/master

Sync to parent contrail-controller.
Merge pull request #4 from Juniper/master

Sync to parent contrail-controller.
Merge pull request #5 from Juniper/master

Sync to parent contrail-controller.
Merge pull request #6 from Juniper/master

Sync to parent contrail-controller.
Fix corner case in RoutePathReplicator cleanup.

If the last RouteTarget for which Leave is called is an export
only target, then Leave doesn't end up requesting a walk of the
VPN table.  Hence the VPN table doesn't get unregistered even
though the TableState has an empty GroupList.

Fix is to trigger a walk from Leave if the GroupList is empty.

Change-Id: Ic4ca1e7ff1a83cda87f12774abf0ce73a7931f41