sw test tool: make the message receiving part independent as a class

the test methods which are in the OfTester class (e.g. _test_flow_install()) are due to be divided and stored in several classes by this patch series.
as a result, OfTester._wait() will be called from several classes.
for ease to reference from each class, the part that receives messages becomes independent as a class, and it holds as a single instance in the module.

the Waiter class, the part that receives messages, takes the following on from the OfTester class:

  - the method that waits for the messages
  - the methods that handle received messages
  - the variables that are used by the above methods
sw test tool: make the prerequisite part independent as a class

'prerequisite' part becomes independent as a class from the Test class and the OfTester class for future expandability.

the Prerequisite class takes the following on from the OfTester class and the Test class:

  - the method that initializes the target switch
  - the method that installs the flow entries
  - the method that confirms that the flow entries were installed correctly
  - the method that parses 'prerequisite' part in the 'test' block of the test file
sw test tool: make the ingress part independent as a class

'ingress' part becomes independent as a class from the OfTester class and the Test class for future expandability.
the conventional 'ingress' part can also express an OneTimeImpressor class.
the following JSONs express the same 'ingress' part.

    "ingress":[
        "ethernet(...)",
        "ipv4(...)",
        "tcp(...)",
        "'...'"
    ]

    "ingress":{
        "OneTimeImpressor":{
            "packet":[
                "ethernet(...)",
                "ipv4(...)",
                "tcp(...)",
                "'...'"
            ]
        }
    }

the OneTimeImpressor class takes the following on from the OfTester class and the Test class:

  - the method that sends the specified packet
  - the method that parses 'ingress' part in the 'test' block of the test file
sw test tool: make the analyzer part independent as classes

'egress', 'PACKET_IN', and 'table-miss' parts become independent as classes from the OfTester class and the Test class for future expandability.

the conventional 'egress' part can also express an OutputAnalyzer class.
the following JSONs express the same 'egress' part.

    "egress":[
        "ethernet(...)",
        "ipv4(...)",
        "tcp(...)",
        "'...'"
    ]

    "egress":{
        "OutputAnalyzer":{
            "packet":[
                "ethernet(...)",
                "ipv4(...)",
                "tcp(...)",
                "'...'"
            ]
        }
    }

the conventional 'PACKET_IN' part can also express an PacketInAnalyzer class.
the following JSONs express the same 'PACKET_IN' part.

    "PACKET_IN":[
        "ethernet(...)",
        "ipv4(...)",
        "tcp(...)",
        "'...'"
    ]

    "PACKET_IN":{
        "PacketInAnalyzer":{
            "packet":[
                "ethernet(...)",
                "ipv4(...)",
                "tcp(...)",
                "'...'"
            ]
        }
    }

the conventional 'table-miss' part can also express an TableMissAnalyzer class.
the following JSONs express the same 'table-miss' part.

    "table-miss":[
        0
    ]

    "table-miss":{
        "TableMissAnalyzer":{
            "table_ids":[
                0
            ]
        }
    }

the OutputAnalyzer class and the PacketInAnalyzer take the following on from the OfTester class:

  - the method that counts the transmitted packets and the received packets
  - the method that confirms that the received packet is the same as the transmitted packet
  - the method that analyzes the reason why the numbers of the received packets differ from the numbers of the transmitted packets
  - the method that parses 'egress' part and 'PACKET_IN' part in the 'test' block of the test file

the TableMissAnalyzer class takes the following on from the OfTester class:

  - the method that counts the matched packets and the unmatched packets
  - the method that confirms that the numbers of the matched packet did not increase
  - the method that parses 'table-miss' part in the 'test' block of the test file