feat(http): run interceptors sync until first non-sync interceptor

Try to run interceptors synchronously until one of them returns a Future. This
makes sure that in common cases the HTTP backend sends the HTTP request immediately
saving dozens of millis of RPC latency.