Various improvements to the JSON code and test reporting bits

whoa, an aside to your patch - this makes me wonder if we're using it anywhere; equals and hashCode on URL hit the network to do DNS lookups, so a case class with URL in it is bad, bad news.