Use JSON instead of Pickle

This just requires writing conversions for IP objects when writing out, and then converting back on reading in.  But it will make it a lot easier for other consumers in other languages to deal with the data