Complete overhaul of the implementation of ONOS cord instance wrapper for cord-tester.
It now patches the onos-cord compose instance in place and restores it back on cleanup.
A sample manifest-cord.json illustrates the usage if one wants to wrap the existing onos-cord running instance
in CiaB head-node (called prod)
This is required because of the manner in which the onos-cord instance networks are created automatically matching the docker networks that already exist for the onos instances.
The service profile spec allows one to synchronize the configuration/apps for the onos-cord running instance.

Change-Id: Icd066d8b953eccb7dcd7330775b548d36a7fb33e
diff --git a/src/test/utils/TestManifest.py b/src/test/utils/TestManifest.py
index 792926a..b5ec2d4 100644
--- a/src/test/utils/TestManifest.py
+++ b/src/test/utils/TestManifest.py
@@ -42,6 +42,8 @@
                 if len(ips) > 1:
                     self.radius_ip = ips[1]
             self.onos_cord = args.onos_cord if args.onos_cord else None
+            self.service_profile = args.service_profile if args.service_profile else None
+            self.synchronizer = args.synchronizer if args.synchronizer else None
             self.docker_network = args.network if args.network else None
             self.iterations = None
             self.server = args.server
@@ -55,6 +57,8 @@
             if self.onos_ip and self.radius_ip:
                 self.test_controller = '{}/{}'.format(self.onos_ip, self.radius_ip)
             self.onos_cord = data.get('onos_cord', None)
+            self.service_profile = data.get('service_profile', None)
+            self.synchronizer = data.get('synchronizer', None)
             self.head_node = data.get('head_node', platform.node())
             self.log_level = data.get('log_level', 'INFO').upper()
             self.onos_instances = data.get('onos_instances', 1)