= io: fix TcpConnection not handling intermediate empty writes in compound writes correctly
+ http: move `withDefaultHeaders` from HttpRequest up to HttpMessage
! routing: simplify and speed up CompletionMagnet
! httpx: remove MetaUnmarshallers.scala, fold only member into FormDataUnmarshallers.scala
+ httpx: add FromMessageUnmarshaller, FromRequestUnmarshaller and FromResponseUnmarshaller definitions

Implements #293 for the unmarshalling side
+ testkit: deprecate `entityAs[T]`, replace with `responseAs[T]`
+ httpx: extend MarshallingContext with support for specifying additional HTTP headers

Also: explicitly forbid using marshalers with RequestBuilding, which produce chunked requests
+ httpx: introduce `ToResponseMarshaller` and supporting infrastructure
! routing: upgrade to new ToResponseMarshaller, closes #293

Removes `RequestContext::marshallingContext`. Also: the `produce` directive looses its `status` and `headers` parameters.
Use the new `ToResponseMarshaller.fromMarshaller` creator instead.
= routing: move parameterless directive definitions into the respective companion object

This has two benefits:
1. We always avoid reconstruction of the directive instance.
2. We reduce the memory footprint of all `HttpService` implementors.
= docs: cherry-picked documentation change in b80bfb7a7 for 1.2-M8

generated from 5fd713d91caf19b8a0e63a16d3529e61ec3a02dc
+ routing: add `requestInstance` and `requestUri` directives, closes #525
Merge pull request #547 from spray/ticket/525

Ticket/525
= routing: fix `autoChunk` directives discarding status and headers, closes #533
Merge pull request #545 from spray/ticket/293

Close ticket #293, smaller improvements
Merge pull request #546 from spray/ticket/533

Ticket/533