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.
Perhaps. That is the current behavior of master and is preserved here. If we want to change that too, I can sneak it in. That seems like better behavior for situations such as ```orElse``` where the encoder would simply be ignored.