OpenFlow 1.2 switch

I've taken the simple_switch.py app and written an OpenFlow 1.2 version of it. Things that are different:

- Code refactored to support OpenFlow 1.2
- Buffer_ID used in flow_mod instead of doing a second unnecessary packet_out message
- Uses two tables - first table matches dl_src to port and jumps to controller if unknown, second outputs based on dl_dst. Matching on in_port and dst pairs requires O(n^2) flows for a fully populated switch, this requires O(2n) - meaning a switch with 20 attached servers would require 40 flows instead of 400 - a definite advantage of OF 1.2