Misconfigured non-gRPC, HTTP/2 clients can sometimes connect to gRPC servers. Today, these clients will receive an HTTP status 200 (OK) with a trailer that gRPC clients would be able to interpret as an error, but non-gRPC clients would interpret as a success.  In Go and Java, this will have a grpc-status of UNKNOWN due to an unexpected content-type header.  In C, the content-type header is currently ignored, but a grpc-status of UNAVAILABLE will be returned if a handler for that method is not registered (which is likely in this scenario).
Misconfigured non-gRPC, HTTP/2 clients can sometimes connect to gRPC servers.
Today, these clients will receive an HTTP status 200 (OK) with a trailer that
gRPC clients would be able to interpret as an error, but non-gRPC clients would
interpret as a success.  In Go and Java, this will have a grpc-status of
UNKNOWN due to an unexpected content-type header.  In C, the content-type
header is currently ignored, but a grpc-status of UNAVAILABLE will be returned
if a handler for that method is not registered (which is likely in this
scenario).

This change updates the gRPC HTTP/2 spec to recommend returning HTTP status 400
(Bad Request) to interoperate better with non-gRPC clients.

Note that we should not do any enforcement on user-agent, as the spec
specifically says "the protocol does not require a user-agent to function".

ejona86/grpc,muxi/grpc,ctiller/grpc,ctiller/grpc,stanley-cheung/grpc,ejona86/grpc,vjpai/grpc,vjpai/grpc,vjpai/grpc,nicolasnoble/grpc,vjpai/grpc,sreecha/grpc,grpc/grpc,jtattermusch/grpc,sreecha/grpc,vjpai/grpc,muxi/grpc,donnadionne/grpc,jboeuf/grpc,vjpai/grpc,ctiller/grpc,nicolasnoble/grpc,vjpai/grpc,ctiller/grpc,ctiller/grpc,pszemus/grpc,pszemus/grpc,donnadionne/grpc,muxi/grpc,vjpai/grpc,grpc/grpc,donnadionne/grpc,nicolasnoble/grpc,nicolasnoble/grpc,grpc/grpc,firebase/grpc,jtattermusch/grpc,donnadionne/grpc,grpc/grpc,jboeuf/grpc,muxi/grpc,jboeuf/grpc,donnadionne/grpc,grpc/grpc,jboeuf/grpc,jboeuf/grpc,grpc/grpc,jtattermusch/grpc,jtattermusch/grpc,jboeuf/grpc,firebase/grpc,jboeuf/grpc,nicolasnoble/grpc,nicolasnoble/grpc,ejona86/grpc,grpc/grpc,muxi/grpc,sreecha/grpc,muxi/grpc,stanley-cheung/grpc,ejona86/grpc,sreecha/grpc,donnadionne/grpc,nicolasnoble/grpc,jtattermusch/grpc,vjpai/grpc,sreecha/grpc,grpc/grpc,stanley-cheung/grpc,jtattermusch/grpc,muxi/grpc,firebase/grpc,pszemus/grpc,vjpai/grpc,nicolasnoble/grpc,ejona86/grpc,firebase/grpc,donnadionne/grpc,jtattermusch/grpc,ejona86/grpc,vjpai/grpc,vjpai/grpc,donnadionne/grpc,firebase/grpc,donnadionne/grpc,stanley-cheung/grpc,muxi/grpc,jtattermusch/grpc,nicolasnoble/grpc,jboeuf/grpc,stanley-cheung/grpc,sreecha/grpc,firebase/grpc,pszemus/grpc,stanley-cheung/grpc,jboeuf/grpc,donnadionne/grpc,ejona86/grpc,stanley-cheung/grpc,donnadionne/grpc,jtattermusch/grpc,muxi/grpc,stanley-cheung/grpc,pszemus/grpc,firebase/grpc,stanley-cheung/grpc,ctiller/grpc,grpc/grpc,ctiller/grpc,pszemus/grpc,firebase/grpc,jtattermusch/grpc,firebase/grpc,sreecha/grpc,ejona86/grpc,jboeuf/grpc,firebase/grpc,sreecha/grpc,jtattermusch/grpc,ejona86/grpc,pszemus/grpc,donnadionne/grpc,pszemus/grpc,ctiller/grpc,ejona86/grpc,ctiller/grpc,ctiller/grpc,ctiller/grpc,stanley-cheung/grpc,ctiller/grpc,grpc/grpc,muxi/grpc,ejona86/grpc,pszemus/grpc,firebase/grpc,pszemus/grpc,pszemus/grpc,grpc/grpc,sreecha/grpc,sreecha/grpc,pszemus/grpc,sreecha/grpc,stanley-cheung/grpc,muxi/grpc,jtattermusch/grpc,nicolasnoble/grpc,jboeuf/grpc,muxi/grpc,sreecha/grpc,firebase/grpc,grpc/grpc,stanley-cheung/grpc,nicolasnoble/grpc,nicolasnoble/grpc,jboeuf/grpc,ejona86/grpc