internal: fix header evaluation order

This change is being made so headers will be evaulted at the end
of the chain. Non-chained interceptors are always evaultated first.
With some recent changes in `bigtable` headers are being applied
via a ChainInterceptor. This change is being made so that the headers
will be checked after they have been applied.

Related to internal bug 146574757

Change-Id: I77e92b4d27f8200688194268ff437060ae3c0dac
Reviewed-on: https://code-review.googlesource.com/c/gocloud/+/49890
Reviewed-by: Jean de Klerk <deklerk@google.com>
diff --git a/internal/testutil/headers_enforcer.go b/internal/testutil/headers_enforcer.go
index d24e321..d90b1c6 100644
--- a/internal/testutil/headers_enforcer.go
+++ b/internal/testutil/headers_enforcer.go
@@ -92,8 +92,8 @@
 // to enforce the presence and validity of expected headers.
 func (h *HeadersEnforcer) DialOptions() []grpc.DialOption {
 	return []grpc.DialOption{
-		grpc.WithStreamInterceptor(h.interceptStream),
-		grpc.WithUnaryInterceptor(h.interceptUnary),
+		grpc.WithChainStreamInterceptor(h.interceptStream),
+		grpc.WithChainUnaryInterceptor(h.interceptUnary),
 	}
 }