Forward-port of recent spray patches

This PR aggregates a number of patches that we have applied to spray this week.
yes, that is the agreed way. If you use TestKit you can use https://github.com/akka/akka/blob/master/akka-testkit/src/main/scala/akka/testkit/TestKit.scala#L681
or https://github.com/akka/akka/blob/master/akka-testkit/src/main/scala/akka/testkit/TestKit.scala#L773

The reasons:
- verifies that the shutdown is all good (otherwise it is an indication that something is wrong)
- ensures that a test execution is not overlapping (unless run in parallel)