action: support assigning fields with keyword arguments to the constructor

The basic module has been changed to use the new API.
diff --git a/tests/basic.py b/tests/basic.py
index 43b7de4..a1540a1 100644
--- a/tests/basic.py
+++ b/tests/basic.py
@@ -204,8 +204,7 @@
                logging.info("PKT OUT test with %s, port %s" % (opt, dp_port))
                msg = message.packet_out(in_port=ofp.OFPP_NONE,
                                         data=str(outpkt))
-               act = action.action_output()
-               act.port = dp_port
+               act = action.action_output(port=dp_port)
                msg.actions.add(act)
 
                logging.info("PacketOut to: " + str(dp_port))
@@ -258,9 +257,8 @@
                                  ", ports " + str(dp_ports))
                msg = message.packet_out(in_port=ofp.OFPP_NONE,
                                         data=str(outpkt))
-               act = action.action_output()
                for i in range(0,num_ports):
-                  act.port = dp_ports[i]
+                  act = action.action_output(port=dp_ports[i])
                   msg.actions.add(act)
 
                logging.info("PacketOut to: " + str(dp_ports))