Arrange JSON instances more like the rest of our code.

Employs the technique of (package) objects extending `*Instances` traits, which generally follows the scalaz model generally followed elsewhere in http4s.
Argonaut and Jawn reject an empty string.  json4s parses it to `JNothing`, which is a json4ism that should not be propagated.  And it looks invalid per RFC7159.  I'm going to make this an error case.