Change EntityEncoder constructor pattern to that of EntityDecoder

__This may not be ready.__

That PR brings the ```EntityEncoder``` closer to ```EntityDecoder``` with the exception of the factory methods. They are not curried. I find myself always forgetting the ```()``` at the end if I don't want to add a header. It also forbids overloading on the second argument list which is a pain if I want to have both
```scala
def encodedBy[A](f: A => Task[Entity])(headers: Header*): EntityEncoder[A] = ???

// no-go: the two methods are ambiguous.
def encodedBy[A](f: A => Task[Entity])(headers: Headers): EntityEncoder[A] = ???
```
which come in handy for the common case of a single header.

At any rate, I think ```EntityEncoder``` and ```EntityDecoder``` should be symmetric in being curried or not, so I'm soliciting opinions.
The overloads end up with type inference issues in my hands. I also like the idea of forcing the user to say explicitly 'no headers' with ```()``` and it will likely be a mistake to not include a Content-Type header.