Changing Encode/DecodeJson variance

For types `B <: A`, a implicit instances of `EncodeJson[A]` will now be
accepted when `EncodeJson[B]` is required.
Similarly, a `DecodeJson[B]` will be accepted for `DecodeJson[A]`.

e.g: an implicit `EncodeJson[Seq[T]]` can be used for
`EncodeJson[List[T]]`, `EncodeJson[Vector[T]]`, etc.
Merge pull request #98 from rodrigopr/encode-decode-variance

Change EncodeJson/DecodeJson variance