Revert "Eliminate MethodDescriptor from startCall and interceptCall for servers"

This reverts commit 3df1446debe7e0da964b57306c2e42a74a8005b5.

The commit was adding to the difficulty of integration for testing. By
itself it isn't bad, so this is a temporary revert until the many other
commits are absorbed and then it will be reapplied.

This does have a manual edit for ClientCallsTest.
diff --git a/compiler/src/java_plugin/cpp/java_generator.cpp b/compiler/src/java_plugin/cpp/java_generator.cpp
index 292a6cf..de72794 100644
--- a/compiler/src/java_plugin/cpp/java_generator.cpp
+++ b/compiler/src/java_plugin/cpp/java_generator.cpp
@@ -851,31 +851,6 @@
   p->Print("}\n\n");
 }
 
-static void PrintGetServiceDescriptorMethod(const ServiceDescriptor* service,
-                                   map<string, string>* vars,
-                                   Printer* p,
-                                   bool generate_nano) {
-  (*vars)["service_name"] = service->name();
-  p->Print(
-      *vars,
-      "public static $ServiceDescriptor$ getServiceDescriptor() {\n");
-  p->Indent();
-  p->Print(*vars,
-           "return new $ServiceDescriptor$(SERVICE_NAME");
-  p->Indent();
-  p->Indent();
-  for (int i = 0; i < service->method_count(); ++i) {
-    const MethodDescriptor* method = service->method(i);
-    (*vars)["method_field_name"] = MethodPropertiesFieldName(method);
-    p->Print(*vars, ",\n$method_field_name$");
-  }
-  p->Print(");\n");
-  p->Outdent();
-  p->Outdent();
-  p->Outdent();
-  p->Print("}\n\n");
-}
-
 static void PrintBindServiceMethod(const ServiceDescriptor* service,
                                    map<string, string>* vars,
                                    Printer* p,
@@ -888,7 +863,7 @@
   p->Indent();
   p->Print(*vars,
            "return "
-           "$ServerServiceDefinition$.builder(getServiceDescriptor())\n");
+           "$ServerServiceDefinition$.builder(SERVICE_NAME)\n");
   p->Indent();
   p->Indent();
   for (int i = 0; i < service->method_count(); ++i) {
@@ -1019,7 +994,6 @@
   PrintStub(service, vars, p, BLOCKING_CLIENT_IMPL, generate_nano);
   PrintStub(service, vars, p, FUTURE_CLIENT_IMPL, generate_nano);
   PrintMethodHandlerClass(service, vars, p, generate_nano);
-  PrintGetServiceDescriptorMethod(service, vars, p, generate_nano);
   PrintBindServiceMethod(service, vars, p, generate_nano);
   p->Outdent();
   p->Print("}\n");
@@ -1076,8 +1050,6 @@
   vars["BindableService"] = "io.grpc.BindableService";
   vars["ServerServiceDefinition"] =
       "io.grpc.ServerServiceDefinition";
-  vars["ServiceDescriptor"] =
-      "io.grpc.ServiceDescriptor";
   vars["AbstractStub"] = "io.grpc.stub.AbstractStub";
   vars["ImmutableList"] = "com.google.common.collect.ImmutableList";
   vars["Collection"] = "java.util.Collection";
diff --git a/compiler/src/test/golden/TestService.java.txt b/compiler/src/test/golden/TestService.java.txt
index d2db52d..27da25d 100644
--- a/compiler/src/test/golden/TestService.java.txt
+++ b/compiler/src/test/golden/TestService.java.txt
@@ -400,18 +400,9 @@
     }
   }
 
-  public static io.grpc.ServiceDescriptor getServiceDescriptor() {
-    return new io.grpc.ServiceDescriptor(SERVICE_NAME,
-        METHOD_UNARY_CALL,
-        METHOD_STREAMING_OUTPUT_CALL,
-        METHOD_STREAMING_INPUT_CALL,
-        METHOD_FULL_BIDI_CALL,
-        METHOD_HALF_BIDI_CALL);
-  }
-
   public static io.grpc.ServerServiceDefinition bindService(
       final TestService serviceImpl) {
-    return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor())
+    return io.grpc.ServerServiceDefinition.builder(SERVICE_NAME)
         .addMethod(
           METHOD_UNARY_CALL,
           asyncUnaryCall(
diff --git a/compiler/src/testLite/golden/TestService.java.txt b/compiler/src/testLite/golden/TestService.java.txt
index 7eb5472..dfd559f 100644
--- a/compiler/src/testLite/golden/TestService.java.txt
+++ b/compiler/src/testLite/golden/TestService.java.txt
@@ -400,18 +400,9 @@
     }
   }
 
-  public static io.grpc.ServiceDescriptor getServiceDescriptor() {
-    return new io.grpc.ServiceDescriptor(SERVICE_NAME,
-        METHOD_UNARY_CALL,
-        METHOD_STREAMING_OUTPUT_CALL,
-        METHOD_STREAMING_INPUT_CALL,
-        METHOD_FULL_BIDI_CALL,
-        METHOD_HALF_BIDI_CALL);
-  }
-
   public static io.grpc.ServerServiceDefinition bindService(
       final TestService serviceImpl) {
-    return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor())
+    return io.grpc.ServerServiceDefinition.builder(SERVICE_NAME)
         .addMethod(
           METHOD_UNARY_CALL,
           asyncUnaryCall(
diff --git a/compiler/src/testNano/golden/TestService.java.txt b/compiler/src/testNano/golden/TestService.java.txt
index 95462db..27104de 100644
--- a/compiler/src/testNano/golden/TestService.java.txt
+++ b/compiler/src/testNano/golden/TestService.java.txt
@@ -478,18 +478,9 @@
     }
   }
 
-  public static io.grpc.ServiceDescriptor getServiceDescriptor() {
-    return new io.grpc.ServiceDescriptor(SERVICE_NAME,
-        METHOD_UNARY_CALL,
-        METHOD_STREAMING_OUTPUT_CALL,
-        METHOD_STREAMING_INPUT_CALL,
-        METHOD_FULL_BIDI_CALL,
-        METHOD_HALF_BIDI_CALL);
-  }
-
   public static io.grpc.ServerServiceDefinition bindService(
       final TestService serviceImpl) {
-    return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor())
+    return io.grpc.ServerServiceDefinition.builder(SERVICE_NAME)
         .addMethod(
           METHOD_UNARY_CALL,
           asyncUnaryCall(