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

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

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

Add implicit conversion to base finch package for sending a value to a
service that ignores the request and returns the response.