testutils: add new functions to check for dataplane packets

`receive_pkt_check` and `receive_pkt_verify` had slightly different
functionality and neither were sufficient for complex tests. This change
deprecates them and adds new functions.

The high level `verify_packets` function is sufficient for most tests. When
more complex logic is needed the primitive functions `verify_packet`,
`verify_no_packet`, and `verify_no_other_packets` should be used directly.

All OpenFlow 1.0/1.3 tests are updated to use the new functions. The old
functions are left around for compatibility with out of tree tests.
diff --git a/tests/basic.py b/tests/basic.py
index 6e0e4d0..8f6678d 100644
--- a/tests/basic.py
+++ b/tests/basic.py
@@ -153,24 +153,7 @@
                logging.info("PacketOut to: " + str(dp_port))
                self.controller.message_send(msg)
 
-               exp_pkt_arg = None
-               exp_port = None
-               if config["relax"]:
-                   exp_pkt_arg = outpkt
-                   exp_port = dp_port
-               (of_port, pkt, pkt_time) = self.dataplane.poll(port_number=exp_port,
-                                                              exp_pkt=exp_pkt_arg)
-
-               self.assertTrue(pkt is not None, 'Packet not received')
-               logging.info("PacketOut: got pkt from " + str(of_port))
-               if of_port is not None:
-                   self.assertEqual(of_port, dp_port, "Unexpected receive port")
-               if not dataplane.match_exp_pkt(outpkt, pkt):
-                   logging.debug("Sent %s" % format_packet(outpkt))
-                   logging.debug("Resp %s" % format_packet(
-                           str(pkt)[:len(str(outpkt))]))
-               self.assertEqual(str(outpkt), str(pkt)[:len(str(outpkt))],
-                                'Response packet does not match send packet')
+               verify_packets(self, outpkt, [dp_port])
 
 class PacketOutMC(base_tests.SimpleDataPlane):
     """
@@ -207,9 +190,7 @@
                logging.info("PacketOut to: " + str(dp_ports))
                self.controller.message_send(msg)
 
-               receive_pkt_check(self.dataplane, outpkt, dp_ports,
-                                 set(of_ports).difference(dp_ports),
-                                 self)
+               verify_packets(self, outpkt, dp_ports)
 
 class FlowStatsGet(base_tests.SimpleProtocol):
     """