New WriteJsonValue writes Json::Value in O(n) time.

I just use the boost convention `namespace detail {` This sidesteps the need to make annoying decisions like "what should I name this."