!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 renaming: mapRouteResponse => mapRouteResult, mapHttpResponse => mapResponse
+htp #15924 import FutureDirectives from spray