+htc #16087 add FastFuture.transformWith and implement others in terms of that + recoverWith + lots of tests
!htp convert List[Rejection] => immutable.Seq[Rejection] everywhere
!htp #16088 replace RouteResult.Failure by Future.failed + handle post-processing directly in Directives

This replaces the awkward post-processing previously done with RequestContext.finish and
prevents the loop-hole of Future.failed which previously allowed errors
to be missed by the current ExceptionHandler.
+htp #15924 import FutureDirectives from spray
!htp renaming: mapRouteResponse => mapRouteResult, mapHttpResponse => mapResponse