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
Increase Coverage

Grab some long hanging fruit to get us up towards 90%.

- Add tests for filter / service ops (!) operators.
- Exclude demo from scoverage in project file

Add spec for service ops

Add filter ops

Exclude demo from coverage report