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.
you're right, it is probably better that you maintain current behavior in this refactoring. I was just surprised.