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
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.
Remove superfluous import
Adjust to use Futures rather than plain values
Add docstring