Json

Note: not necessarily indending to push this to zfsonlinux.  Creating a pull request seems to be the only way of leaving code review comments?  Let me know if I'm using github wrong.
this could be a lot of realloc()-ing.  Hope it isn't too slow.