StringifyMixin: json support

factor out guts of StringifyMixin into a separate module.
add methods to convert to/from json.loads/dumps-compatible dictionary.
this is mainly for json representation of of-wire (OFPxxx) classes.
of-wire json: adapt OF1.0

From: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
of-wire json: adapt OF1.0 nicira extention

this is probably incomplete but better than nothing.
of-wire json: adapt OF1.2
ofproto_v1_2_parser: omit mask attribute from str() when appropriate

normalize str() outputs so that tests like str(msg1) == str(msg2)
more likely succeed.
of-wire json: adapt OF1.3
ofproto_v1_3_parser: omit mask attribute from str() when appropriate

normalize str() outputs so that tests like str(msg1) == str(msg2)
more likely succeed.
test_parser_v12: abuse this to test to_jsondict and from_jsondict
add a test for ryu.lib.stringify
of-wire json test: expected results
of-wire json test: a program to generate test data for unit tests
of-wire json test: change the of_protocol upstream

for now, use my fork of of_protocol, which contains necessary
fixes for our purpose.

this commit is separated from the rest of mkdata so that
it can be easily reverted when the upstream took the necessary
changes.
of-wire json test: generated data for unit test
of-wire json test: unit test
stringify.StringifyMixin.__str__: simplify

simplify the code a bit.
suggested by Isaku Yamahata.
no functional changes are intended.
ofproto: generate OFPXMT_OFB_ and OXM_OF_ from a single source
binary <-> text conversion of mac/ipv4/ipv6 addresses

implemented as a simple wrapper of netaddr.
replace homegrown bin<->text routines with addrconv
use bytes instead of int to represent ipv4 addresses

change ipv4 representation from int to bytes in many places.
replace homegrown bin<->text routines with addrconv for ipv4_to_{str,bin}.