This addresses Tanu's comments from the first series. I've squashed a bunch of stuff that I thought made sense, and for some additions, I've split out into new patches for easy review. I think it's fine to have it this way since we'll be merging it all together anyway. One thing I would welcome is patches, or even suggestions, of bad JSON strings that we should be able to handle. It's quite easy to just throw them into the test suite. I've also verified that both json-test and format-test are valgrind clean. Cheers, Arun