A type class that wraps a decoder that will only accept root JSON values
(i.e., either JSON objects or arrays).
Because the core circe module does not provide subtypes of Decoder that
provide this guarantee, we approximate it by creating instances for types
that have both Decoder and RootEncoder instances, or that only have
a Decoder instance (and no Encoder).