Add IPv4/6 conversions from/to Cstructs

Re #12 
I would encourage not allocating cstructs in these functions, but passing in a cstruct to write into.  This is because they must be allocated via `Io_page` in Mirage (so that the underlying page is aligned to a 4K block).